使用键盘焦点在沙盒上获取NSScreen

Raj*_*lak 10 macos cocoa accessibility appstore-sandbox swift

我想知道的是哪个NSScreen具有键盘焦点.

首先,我添加了观察者,NSScreen并且每当NSWorkspace.didActiveApplicationNotification调用方法时,我需要确定哪个foo具有键盘焦点.

NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(foo), name: NSWorkspace.didActivateApplicationNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)

我从这个通知中得到的只是NSScreen对象,但它没有告诉我哪个屏幕是关注的.

NSScreen文档中,我找到了NSScreen的主要属性和描述

返回包含具有键盘焦点的窗口的屏幕对象.

这是我想要的,但它并没有像我想象的那样奏效.它返回错误的屏幕.在头文件中我找到了这个信息

//缓存的值,可能是陈旧的

我尝试过Accessibility,一切都很好,但是当启用Sandbox时它不起作用,所以我无法使用它.

有没有人知道如何通过键盘焦点获取NSScreen对象?