我有一个简单的Cocoa应用程序,在单击NSMenu项目时启动NSWindow。我通过segue启动窗口。问题是,当我多次单击菜单项时,它会不断创建新窗口,而不是将现有窗口置于前台。我该如何防止这种行为?提前致谢。
答案 0 :(得分:7)
答案 1 :(得分:5)
如果您的 Window 没有使用 Storyboard,假设您为此 .xib
创建了单独的 .xib
和 ViewController,您可以使用以下方法:
添加到您的班级:
lazy var testViewcontroller = TestViewController(nibName: "TestWindow", bundle: nil)
lazy var testWindow = NSWindow(contentViewController: testViewcontroller)
然后,将其添加到调用窗口的方法中:
testWindow.makeKeyAndOrderFront(nil)
NSApp.activate(ignoringOtherApps: true) // will help your window to open on top of others