cocoa - 如何防止以代理身份运行的应用程序注销

标签 cocoa user-agent nsapplication-delegate

示例菜单栏应用程序是一个代理,因为它的 LSUIElement 为 TRUE。 我想防止在某些情况下注销。

我尝试使用 - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender。 但当用户注销时我从未收到此消息。

但是如果没有 ,我也可以防止注销。

需要替代解决方案以防止注销。

最佳答案

不要在 plist 中使用 LSUIElement。相反,在启动时使用:

[NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];

我验证了 applicationShouldTerminate: 实际上在这样做时被调用。

关于cocoa - 如何防止以代理身份运行的应用程序注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286351/

相关文章:

macos - applicationDidBecomeActive 在 OSX 应用程序中不会触发

objective-c - 对 Cocoa 应用程序和 Quartz Composer 中的 Movie Loader 补丁之间的绑定(bind)问题感到非常困惑

objective-c - 协议(protocol)对象 : Compiler Warnings on addObserver: 上的键值观察

ios - 了解 Apple 开发者引用文档

cocoa - 如何使我的 NSScroller 子类具有不同的宽度?

java - Jsoup 读取超时取决于 UserAgent 字符串

Ruby Web 服务器获取用户代理

xcode - 如果没有恢复文档,如何自动创建新的 NSDocument?

internet-explorer - 实际用户有多少个IE6用户?

objective-c - 为什么 NSApplicationDelegate 方法 openFiles : is being called multiple times on a multiple drag to the dock icon?