如何阻止NSPanel窃取另一个应用程序的输入

时间:2016-07-07 01:46:35

标签: xcode swift macos

我有一个NSPanel。它的目的是坐在所有空间的所有空间之上,这样就可以了。

我不希望它成为第一个响应者并从另一个应用程序中获得焦点。

我将NSPanel分类为

class SomePanelClass: NSPanel {
    override var acceptsFirstResponder: Bool{
        return false
    }
}

当窗口显示或我将其拖动到应用程序时,我仍然看起来有焦点,它的名称在菜单中,但键击不会在该应用程序中注册,直到我再次点击它为止。窗口。

我还能做些什么来阻止我的应用和面板窃取输入?

1 个答案:

答案 0 :(得分:2)

您可能希望在Panel子类上覆盖canBecomeKeyWindow以返回NO。

- (BOOL) canBecomeKeyWindow {
  return NO;
}