NSStatusBar + Swift: заголовок отображается и сразу исчезает

Я хочу сделать строку состояния для macOS, но после запуска приложения отображается заголовок и сразу исчезает

func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
        let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
        statusItem.title = "Hello"

    }

Я думаю, что что-то не так со ссылками, но не знаю, как решить эту проблему.

1 ответ

Решение

На самом деле вам нужна сильная ссылка на элемент статуса

var statusItem : NSStatusItem!

func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
        statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
        statusItem.title = "Hello"

}

Однако я рекомендую использовать закрытие для инициализации элемента статуса

let statusItem : NSStatusItem = {
    let item =  NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
    item.title = "Hello"
    return item
}()
Другие вопросы по тегам