如何在 Mac OS Swift 应用程序中重新获得/设置焦点

问题描述 投票:0回答:1

在我的一种观点中,我将模态对话框称为:

let application = NSApplication.shared()
application.runModal(for: artistDialogWindow)

当按下“确定”或“取消”按钮时,我会像这样终止模式窗口:

let application = NSApplication.shared()
application.stopModal()

调用该对话框的视图重新获得控制权。运行代码后,它退出。在屏幕上,似乎没有窗口具有焦点。如果我单击窗口的标题栏,标题栏左侧的红色、橙色和绿色按钮就会从灰色变为彩色。我如何以编程方式执行此操作?

我尝试了 NSApplication.activate。它没有任何作用。想必我的应用程序已经处于活动状态。它只是没有焦点。我还尝试在视图中的表中选择一行。该行被选中,但窗口未被选中。

swift xcode macos cocoa
1个回答
5
投票

你可以尝试 NSWindow 的 makeKey()。或者 makeKeyAndOrderFront(_ sender: 有吗?)。这些会激活窗口。

例如,

niceWindow
必须获得焦点(您需要对要获得焦点的窗口的引用)。然后做:

niceWindow.makeKey()

niceWindow.makeKeyAndOrderFront(self)
© www.soinside.com 2019 - 2024. All rights reserved.