我想知道的是哪个NSScreen
具有键盘焦点。
首先我添加了NSWorkspace.didActiveApplicationNotification
的观察者,每当调用foo
方法时,我需要确定哪个NSScreen
具有键盘焦点。
NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(foo), name: NSWorkspace.didActivateApplicationNotification, object: nil)
此通知中的所有内容都是NSRunningApplication
对象,但它并不告诉我哪个屏幕是关注的。
在NSScreen documentation中,我找到了NSScreen的main property及其说明
返回包含带键盘窗口的屏幕对象 对焦。
这正是我想要的,但它并没有像我想的那样奏效。它返回错误的屏幕。在头文件中,我找到了这个信息
//缓存值,可能是陈旧的
我尝试过Accessibility,一切正常,但是当启用Sandbox时它不起作用,所以我无法使用它。
有人知道如何使用键盘焦点获取NSScreen对象吗?