gpt4 book ai didi

macos - Mac - 如何以编程方式隐藏 NSApplicationActivationPolicyAccessory 或 LSUIElement 应用程序?

转载 作者:行者123 更新时间:2023-12-03 16:17:18 26 4
gpt4 key购买 nike

我正在编写一个基于 Swift 的小型 Cocoa 应用程序。它是一个单窗口应用程序,类似于 Spotlight/QuickSilver/Alfred。它被设置为 NSApplicationActivationPolicyAccessory ( docs )(尽管我已经使用 LSUIElement 尝试了同样的操作,这是等效的)。它是通过全局热键激活的。

一切正常,除了当它处于事件状态时我无法使用 NSRunningApplication.currentApplication().hide() 隐藏应用程序。

The docs对于 hide 方法,请说“如果应用程序已经退出,或者如果类型无法隐藏,则该值的属性将为NO”。 (强调我的),我得到了 NO 回复(尽管我实际上使用的是 Swift,所以我得到了 false)。

我可以理解为什么 NSApplicationActivationPolicyProhibited 应用程序无法隐藏,因为它永远不会处于事件状态,但令我困惑的是 NSApplicationActivationPolicyAccessory 就是这种情况> 也是。

我尝试了 myWindow.orderOut(self);,但这只是隐藏了窗口,而没有隐藏我的应用程序并将焦点返回到上一个应用程序。

我确实存储了对先前事件应用程序的引用,因此如果需要,我可以再次手动激活该应用程序,但我希望有一种更简洁的方法来执行此操作。

最佳答案

使用NSApplication.sharedApplication().hide(nil)。人们通常会寻址应用程序对象(NSApplication 的实例)而不是 NSRunningApplication 的实例来对当前应用程序进行操作。

关于macos - Mac - 如何以编程方式隐藏 NSApplicationActivationPolicyAccessory 或 LSUIElement 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30923271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com