故事板中的 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
}