【问题标题】:Application exit event应用程序退出事件
【发布时间】:2009-11-20 05:23:26
【问题描述】:

我正在开发一个可可应用程序。我的应用程序最初显示一个弹出表。我需要知道当我们尝试通过右键单击并在停靠栏中的图标上选择“退出”来退出应用程序时触发了哪个事件,因为由于弹出表,我无法退出应用程序。我该如何解决这个问题?

【问题讨论】:

    标签: objective-c cocoa macos appleevents


    【解决方案1】:

    当在 Dock 菜单中选择 Quit 项时,您的应用会收到 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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      • 2011-10-04
      • 2018-04-01
      • 2018-05-28
      • 2015-07-16
      相关资源
      最近更新 更多