我有一个主消息循环。我正在寻找一种方法来检查事件是否是一个AppleEvent,如果它的event类是'MyClass‘,那么做一些事情。我已经在NSEvent参考中找过了,但是找不到我需要的东西。有没有人能推荐一种方法?
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];
} 发布于 2015-05-21 23:18:56
你不能像那样通过NSEvent在你的循环中获得苹果的活动。
因为NSEvent并没有涵盖它。
Cocoa应用程序中的几乎所有事件都由NSEvent类的对象表示。(异常包括苹果事件、通知和类似的项目。)每个NSEvent对象更狭义地表示一种特定类型的事件,每个对象都有自己的处理要求。以下各节介绍NSEvent对象的特征和可能的事件类型
您可以在NSApplication documentation中找到更多信息
相反,您可以使用NSAppleEventManager类向下面的method注册您自己的苹果事件处理程序
- (void)setEventHandler:(id)handler
andSelector:(SEL)handleEventSelector
forEventClass:(AEEventClass)eventClass
andEventID:(AEEventID)eventIDhttps://stackoverflow.com/questions/30377029
复制相似问题