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

时间:2016-12-24 02:54:34

标签: swift xcode macos cocoa

在我的一个视图中,我调用了一个模态对话框,如:

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

按下OK或Cancel按钮后,我将终止模态窗口,如下所示:

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

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

我尝试了NSApplication.activate。它没有做任何事情。据推测我的应用程序已经处于活动状态。它只是没有焦点。我还尝试在视图中的表中选择一行。选中该行,但窗口不是。

1 个答案:

答案 0 :(得分:1)

您可以尝试NSWindow的makeKey()。或makeKeyAndOrderFront(_ sender:Any?)。这些会激活窗口。

例如,必须关注niceWindow(您需要引用要引起焦点的窗口)。然后做:

niceWindow.makeKey()

niceWindow.makeKeyAndOrderFront(self)