应用程序无法隐藏

时间:2012-11-24 22:08:14

标签: objective-c xcode macos cocoa appkit

我知道有可能让NSWindow无法取胜。

但它是否有可能,是否有一个属性,告诉编译器使整个应用程序不可隐藏?

2 个答案:

答案 0 :(得分:0)

我认为模拟此行为的最简单方法是从菜单栏中删除Hide操作,因为我没有看到要执行此操作的属性。因为它控制 Command + H 快捷方式。但是如果你有一个停靠图标,用户可以右键单击它并将其隐藏在那里。因此,您可以回复NSApplicationDelegate's applicationWillHide:applicationDidHide:方法,然后再次展示您的申请。虽然我不认为这听起来像是一个很好的用户体验。

答案 1 :(得分:0)

对于单个窗口,您可以使用-[NSWindow setCanHide:]来控制它是否可以隐藏。

如果要完全禁用隐藏,则可能需要将NSApplication子类化为使用空实现覆盖hide。我从来没有试过这个,但我认为没有任何理由它不会没有麻烦。当然,您还应该从主菜单中删除“隐藏”选项。 (请注意,这样做是不够的,因为您仍然会响应其他应用程序的发送hideOtherApplications:。)