我正在构建这个应用程序,它将位于菜单栏上。
因此,与此类应用程序通常所做的一样,您将状态项菜单调整为应用程序的菜单。
该菜单上的项触发第一个响应者的操作,在我的例子中是该应用程序的视图控制器。
这就是问题所在:如果应用程序处于活动状态,则此方法有效,但如果应用程序未处于活动状态或隐藏状态,则会失败。我猜菜单项触发的操作将触发到响应者链,但没有人监听,因为应用程序处于隐藏状态或未处于活动状态。
在这种情况下我该怎么办?我是否应该创建一个单一实例并将该单一实例添加到响应程序链中?我说单例是因为它会始终加载到内存中。这个单例必须是某个特殊类的子类吗?
如果此菜单中的操作应该触发视图控制器中的内容,该怎么办?
您应该能够在应用程序代表中处理第一响应者,如果应用程序未处于活动状态,它应该可以工作。
请参阅NSEvent.addGlobalMonitorForEvents(matching:handler:)
并注意讨论:
仅当启用了辅助功能或应用程序受信任进行辅助功能访问时,才能监视与密钥相关的事件(请参阅
AXIsProcessTrusted()
(。