故事板中的 NSStatusBar 项目 (OSX)
NSStatusBar item in storyboard (OSX)
是否可以从故事板中为桌面应用程序添加 NSStatusBar
项目?我在网上看到的大多数示例都在 AppDelegate 中执行所有操作,但我认为这对于更复杂的应用程序来说不是一个好主意。
不,您不能在故事板中有效地添加 NSStatusItem
。它没有出口,故事板编辑器不知道它的任何属性。
如果您想将菜单挂在状态栏项目之外,您可以(自 Xcode 7 起)在故事板中创建菜单。将 NSMenu
拖到您的应用程序场景中:
将菜单连接到应用委托中的插座:
最后,使用从故事板加载的菜单在代码中创建状态项:
func applicationDidFinishLaunching(aNotification: NSNotification) {
initStatusItem()
}
private var statusItem: NSStatusItem?
private func initStatusItem() {
self.statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusItem?.title = "Test Item"
statusItem?.menu = self.statusItemMenu
}
是否可以从故事板中为桌面应用程序添加 NSStatusBar
项目?我在网上看到的大多数示例都在 AppDelegate 中执行所有操作,但我认为这对于更复杂的应用程序来说不是一个好主意。
不,您不能在故事板中有效地添加 NSStatusItem
。它没有出口,故事板编辑器不知道它的任何属性。
如果您想将菜单挂在状态栏项目之外,您可以(自 Xcode 7 起)在故事板中创建菜单。将 NSMenu
拖到您的应用程序场景中:
将菜单连接到应用委托中的插座:
最后,使用从故事板加载的菜单在代码中创建状态项:
func applicationDidFinishLaunching(aNotification: NSNotification) {
initStatusItem()
}
private var statusItem: NSStatusItem?
private func initStatusItem() {
self.statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusItem?.title = "Test Item"
statusItem?.menu = self.statusItemMenu
}