OSX Cocoa:如何检查哪个窗口是焦点?

jbx*_*jbx 12 macos cocoa

嘿所有,我对Cocoa和XCode很新,所以如果这是一个愚蠢的问题,我很抱歉.

我该如何检查哪个窗口是焦点?

另外,如果这与先前的解决方案不同,我将如何检查某个窗口是否在焦点上.

谢谢您的帮助.

Pet*_*sey 20

实际上有两种形式的"焦点":

  • 具有活动外观的窗口(彩色/深灰色红绿灯,标题栏中的黑色文本,未修改的代理图标等)是主窗口.
  • 接收键事件的窗口是关键窗口.

考虑一个带有Inspector面板的文档窗口.如果用户正在检查Inspector中的字段中的某些文本,则文档窗口可能是主文件,但Inspector面板是关键.

要获取密钥窗口主窗口,请询问共享的NSApplication实例.并且,正如TechZen所指出的那样,您可以询问一个窗口是否是关键以及它是否为主要窗口.


Tec*_*Zen 4

您正在寻找“keyWindow”。它是 NSWindow 和 NSApplication 的属性。前者是一个 bool,后者是一个 NSWindow 实例。