Xcode NSStatusBar Элемент не появляется
Я пытаюсь добавить элемент в строку состояния, но когда я запускаю приложение, элемент появляется только в верхнем левом углу на долю секунды, а затем быстро исчезает.
Я просмотрел документацию и вижу, что за последнее время что-то изменилось, например 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 ответа
Ах, блестящий. Это сработало! Спасибо Салех. Поиграв с обоими нашими кодами, мой, похоже, работал с объявлением var в верхней части и без экземпляра NSMenuDelegate. Кажется, моя проблема в том, что я говорил:
let statusItem = NSStatusBar.system.statusItem (withLength: NSStatusItem.variableLength)
Все, что мне нужно было сделать, чтобы это сработало, это убрать "let" и просто сказать:
statusItem = NSStatusBar.system.statusItem (withLength: NSStatusItem.variableLength)
- AppDelegate должен быть экземпляром NSMenuDelegate
- Определите statusItem при создании
Установите заголовок кнопки в приложении DidFinishLaunching callback
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(_:)) } }