【问题标题】:kill Mac OSX app if close button is pressed如果按下关闭按钮,则终止 Mac OSX 应用程序
【发布时间】:2015-03-03 01:09:33
【问题描述】:

如果按下红色关闭按钮,我想终止进程窗口(任何进程)。不寻找第三方解决方案(如 RedQuits)。

一种解决方案是通过 applescript 进行,但这涉及到轮询,我试图避免这种情况。

我了解了 NSDistributedNotificationCenter,但无法确定浏览器是否发送有关关闭进程的系统通知。例如,iTunes 会在歌曲播放/暂停时发送通知 com.apple.iTunes.playerInfo。如何查找其他应用程序发送的通知?有什么帮助吗?

还有其他解决方案吗?

【问题讨论】:

    标签: objective-c macos cocoa applescript pyobjc


    【解决方案1】:

    您是否要在最后一个窗口关闭时退出您的应用程序,请使用:

    https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSApplicationDelegate_Protocol/index.html#//apple_ref/occ/intfm/NSApplicationDelegate/applicationShouldTerminateAfterLastWindowClosed:

    - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication
    

    或者您是否正在寻找一种在窗口将要关闭时收到通知的方法,请使用:

    https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSWindowDelegate_Protocol/index.html#//apple_ref/occ/intfm/NSWindowDelegate/windowWillClose:

    - (void)windowWillClose:(NSNotification *)notification
    

    【讨论】:

    • 我读到了这个。问题是,我想关闭的不是我的应用程序,但我想要一个适用于我系统上所有现有应用程序的解决方案。我想如果我们可以在运行时调整 applicationShouldTerminateAfterLastWindowClosed,但它没有用。
    【解决方案2】:

    【讨论】:

    • 感谢通知观察者。我去看看。
    【解决方案3】:

    Modifying Window Button Colors in Mac OS X

    这不是答案。但它可能是朝着正确方向发展的一个方向。我会擦亮眼睛!

    【讨论】:

    • 我不确定这会有什么帮助。我基本上是在寻找一些当我按下红色按钮时触发的事件,所以我可以抓住它。
    • ...本文显示了您尝试配置的按钮的位置...抱歉,这不是一个直接的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2012-05-10
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多