首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在主消息循环中标识AppleEvents

在主消息循环中标识AppleEvents
EN

Stack Overflow用户
提问于 2015-05-21 22:41:50
回答 1查看 148关注 0票数 1

我有一个主消息循环。我正在寻找一种方法来检查事件是否是一个AppleEvent,如果它的event类是'MyClass‘,那么做一些事情。我已经在NSEvent参考中找过了,但是找不到我需要的东西。有没有人能推荐一种方法?

代码语言:javascript
复制
while (!shutdown_now_) 
    {
        NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
        NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask
                                            untilDate:[NSDate distantFuture]
                                               inMode:NSDefaultRunLoopMode
                                              dequeue:YES];

        //if event is AppleEvent AND event class is <MyEventClass> then do something

        if (event) [NSApp sendEvent:event];
        [pool drain];
}  
EN

回答 1

Stack Overflow用户

发布于 2015-05-21 23:18:56

你不能像那样通过NSEvent在你的循环中获得苹果的活动。

因为NSEvent并没有涵盖它。

Documentation

Cocoa应用程序中的几乎所有事件都由NSEvent类的对象表示。(异常包括苹果事件、通知和类似的项目。)每个NSEvent对象更狭义地表示一种特定类型的事件,每个对象都有自己的处理要求。以下各节介绍NSEvent对象的特征和可能的事件类型

您可以在NSApplication documentation中找到更多信息

相反,您可以使用NSAppleEventManager类向下面的method注册您自己的苹果事件处理程序

代码语言:javascript
复制
- (void)setEventHandler:(id)handler
            andSelector:(SEL)handleEventSelector
          forEventClass:(AEEventClass)eventClass
             andEventID:(AEEventID)eventID
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30377029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档