【发布时间】:2021-03-13 22:15:39
【问题描述】:
我有一个支持多个窗口的Cocoa 应用程序。
我已经知道如何让主窗口对来自NSMenu 的任何NSMenuItem 执行操作,包括来自NSToolbar 的NSToolbarItem。
class MainWindowController: NSWindowController {
// ...
@IBAction func doSomethingIncredible(_ sender: Any?) {
// ...
}
}
这对于单个窗口应用程序来说很容易,但我的应用程序支持多个窗口。
但是我怎样才能让除主窗口之外的其他窗口访问甚至验证来自NSMenu 的NSMenuItem?
Safari 就是一个例子。它支持多个窗口。您可以选择打开位置...(⌘L)、新标签页(⌘T)、显示边栏(⇧⌘L)等。它在焦点窗口上执行操作。它不绑定到主窗口。它可以在任何窗口上完成。如何为我的应用执行此操作?
class AnotherWindowController: NSWindowController {
// ...
@IBAction func doSomethingIncredible(_ sender: Any?) {
// ...
}
}
当MainWindowController 和AnotherWindowController 之一是来自NSMenu 的NSMenuItem 之一是关键焦点窗口时,它们如何执行相同的操作?
【问题讨论】:
标签: swift cocoa appkit nswindowcontroller nsmenuitem