Objective c 应用程序退出事件
我正在开发一个可可应用程序。我的应用程序最初显示一个弹出式表单。我需要通过右键单击并选择dock中图标上的“exit”(退出)来知道当我们试图退出应用程序时触发了哪个事件,因为弹出页面导致我无法退出应用程序。如何解决此问题?当在Dock菜单中选择退出项目时,您的应用程序将收到一个Objective c 应用程序退出事件,objective-c,cocoa,macos,appleevents,Objective C,Cocoa,Macos,Appleevents,我正在开发一个可可应用程序。我的应用程序最初显示一个弹出式表单。我需要通过右键单击并选择dock中图标上的“exit”(退出)来知道当我们试图退出应用程序时触发了哪个事件,因为弹出页面导致我无法退出应用程序。如何解决此问题?当在Dock菜单中选择退出项目时,您的应用程序将收到一个quitApple事件。如果要拦截此事件,需要为此事件安装自定义Apple事件处理程序。请注意,在工作表关闭之前,工作表通常会阻止应用程序终止,因此,如果您更改此行为,您的应用程序将与其他应用程序的工作方式不同 下面是一
quit
Apple事件。如果要拦截此事件,需要为此事件安装自定义Apple事件处理程序。请注意,在工作表关闭之前,工作表通常会阻止应用程序终止,因此,如果您更改此行为,您的应用程序将与其他应用程序的工作方式不同
下面是一个简单的示例,说明如何覆盖应用程序委托中的quit
Apple事件的默认处理程序:
- (void)applicationDidFinishLaunching:(NSNotification*)notification
{
//install the custom quit event handler
NSAppleEventManager* appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self andSelector:@selector(handleQuitEvent:withReplyEvent:) forEventClass:kCoreEventClass andEventID:kAEQuitApplication];
}
//handler for the quit apple event
- (void)handleQuitEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
{
[self terminate:self];
}