我正在编写一个基于Swift的小型Cocoa应用程序.它是一个单一的窗口应用程序,类似Spotlight/QuickSilver/Alfred.它被设置为NSApplicationActivationPolicyAccessory(docs)(虽然我尝试使用相同的东西LSUIElement,这是等效的).它通过全局热键激活.
一切都很好,除了当它处于活动状态时我无法隐藏应用程序NSRunningApplication.currentApplication().hide().
hide方法的文档说:" NO如果应用程序已经退出,则该值的属性将是,或者是否为无法隐藏的类型." (强调我的),我NO回来了(虽然我实际上使用的是Swift,所以我得到了false).
我可以理解为什么一个NSApplicationActivationPolicyProhibited应用程序无法被隐藏,因为它永远不会被激活,但我也很困惑,这NSApplicationActivationPolicyAccessory也是如此.
我尝试了myWindow.orderOut(self);,但这只是隐藏窗口而不隐藏我的应用程序并将焦点返回到以前的应用程序.
我存储了对以前活动的应用程序的引用,所以如果需要,我可以再次手动激活该应用程序,但我希望有一个更简洁的方法来执行此操作.
使用NSApplication.sharedApplication().hide(nil).通常会解决应用程序对象(实例NSApplication),而不是NSRunningApplication在当前应用程序上运行的实例.
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |