故事板中的NSStatusBar项目(OSX)

Dăn*_*ian 2 macos xcode statusbar swift xcode7

是否可以NSStatusBar从故事板中为桌面应用添加项目?我在网上看到的大多数例子都在AppDelegate中做了一切,但我不认为这对于更复杂的应用程序来说是个好主意.

rob*_*off 5

不,你不能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
}
Run Code Online (Sandbox Code Playgroud)