【发布时间】:2015-08-31 01:45:19
【问题描述】:
我有一个简单的 Cocoa 应用程序,它在单击 NSMenu 项目时启动 NSWindow。我正在通过 segue 启动窗口。问题是当我多次单击菜单项时,它会不断创建新窗口,而不是将现有窗口置于前台。如何防止这种行为?提前致谢。
【问题讨论】:
-
请提供您的
NSMeniItem-action。
标签: macos cocoa nswindow nsmenu
我有一个简单的 Cocoa 应用程序,它在单击 NSMenu 项目时启动 NSWindow。我正在通过 segue 启动窗口。问题是当我多次单击菜单项时,它会不断创建新窗口,而不是将现有窗口置于前台。如何防止这种行为?提前致谢。
【问题讨论】:
NSMeniItem-action。
标签: macos cocoa nswindow nsmenu
如果您的 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
【讨论】: