我有一个应用程序,其中包含一个窗口和一个附加到该窗口的面板。
步骤:
- 停用我的应用程序(应用程序已打开,但没有焦点)
- 在面板上单击按钮(现在面板已获得焦点,但主窗口没有)
如何从面板设置焦点到主窗口(父窗口)?
我有一个应用程序,其中包含一个窗口和一个附加到该窗口的面板。
步骤:
如何从面板设置焦点到主窗口(父窗口)?
以下是BUDDAx2所提供的Swift 5版本答案:
NSApplication.shared.activate(ignoringOtherApps: true)
您提到的“焦点”并不是很清楚,而且您所称的主窗口是否符合Cocoa定义中的主窗口也不确定。假设它是一个Cocoa的主窗口,并且焦点与键状态相同,
[[NSApp mainWindow] makeKeyWindow];
或者
[[NSApp mainWindow] makeKeyAndOrderFront:self];
如果不是Cocoa主窗口,您需要引用它并发送-makeKeyWindow
或-makeKeyAndOrderFront:
。
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; // "Available in OS X v10.0 and later."
这段代码的意思是激活当前应用程序并将其置于其他应用程序之上,即使其他应用程序正在运行。注释中指出该方法适用于 Mac 操作系统版本 10.0 及更高版本。 - superlukas