Xcode NSStatusBar Элемент не появляется - PullRequest
0 голосов
/ 19 февраля 2019

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

Я просмотрел документацию и вижу, что за последнее время что-то изменилось, например, statusItem.title стало statusItem.button?.title.Но, похоже, ничего не пропустил.Любая помощь?

Вот мой код:

var statusItem : NSStatusItem? = nil

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application

        let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
        statusItem.button?.title = "Connect!"

}

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Ах, блестящий.Это сработало!Спасибо Салех.Поиграв с обоими нашими кодами, мой, похоже, работал с объявлением var в верхней части и без экземпляра NSMenuDelegate.Кажется, моя проблема в том, что я говорил:

let statusItem = NSStatusBar.system.statusItem (withLength: NSStatusItem.variableLength)

Все, что мне нужно было сделать, чтобы это работало, это удалитьlet 'и просто скажем:

statusItem = NSStatusBar.system.statusItem (withLength: NSStatusItem.variableLength)

0 голосов
/ 19 февраля 2019
  1. AppDelegate должен быть экземпляром NSMenuDelegate
  2. Определить statusItem при создании
  3. Установить заголовок кнопки в applicationDidFinishLaunching обратный вызов

    class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
    let statusItem = NSStatusBar.system.statusItem(withLength:NSStatusItem.variableLength)
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        if let button = statusItem.button {
            //button.image = NSImage(named:NSImage.Name("StatusBarButtonImage"))
            button.title = "connect"
            //button.action = #selector(doSomething(_:))
        }
    }
    
...