2016-12-24 31 views
2

回潮率/设置焦点在我的观点一个我叫一个模式对话框,如:如何在Mac OS斯威夫特应用

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

当确定或取消按钮被按下,我终止像模态窗口这个:

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

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

我试过NSApplication.activate。它什么都不做。据推测我的应用程序已经启动。它只是没有重点。我也尝试在视图中的表格中选择一行。行被选中,但窗口不是。

+1

NSWindow文档,可以像orderFront方法:例如...现在你只需要应该去前面的窗口的引用。或者,您可以将对话模式运行到当前窗口中,而不是根本不需要。 – Volker

回答

0

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

例如,必须关注niceWindow(您需要参考您想要关注的窗口)。然后做:

niceWindow.makeKey() 

niceWindow.makeKeyAndOrderFront(self) 
+0

我知道它与self.view.window!.makeKey()一起工作。将您的问题改为答案,以便其他人可以受益,我会接受。 – curt

+0

完成。很高兴提供帮助! –

+0

可以发布工作代码吗?我有完全相同的问题,但不能使其工作。 http://stackoverflow.com/questions/41581740/how-to-bring-focus-to-window-after-closing-modal-in-swift-3-for-macos – Travis