Я работал над приложением панели меню и заставил NSStatusBarButton выглядеть так, как я хочу.Затем я немного реструктурировал код, и внезапно после его запуска без каких-либо ошибок / предупреждений компилятора кнопка больше не отображается в строке меню.
Я уже дважды проверил свой код, но я не проверяюНе могу найти причину, по которой он меняет свое поведение.Любопытно, что если я продолжу копировать и вставлять мой код во вновь созданный проект приложения для какао, он снова будет работать нормально.WTF?Я как-то испортил настройки своего проекта?Но этого не может быть.Я буквально просто поместил код, который рисует изображение кнопки из метода applicationDidFinishLaunching, в отдельный метод, который я назвал initStatusBarImage () и вызвал его из applicationDidFinishLaunching.Затем он внезапно не показывает элемент строки состояния, я отменяю изменения кода, запускаю его, и он все еще не работает.Я что-то упустил?Вот пример кода, с которым у меня есть проблемы, как описано.И да, изображение находится в моей папке активов, это не проблема
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
let sItem = NSStatusBar.system.statusItem(withLength:NSStatusItem.variableLength)
func applicationDidFinishLaunching(_ aNotification: Notification) {
let img1 = NSImage(named:NSImage.Name("progressbar-15"))
let img2 = NSImage(named:NSImage.Name("progressbar-15"))
let img3 = NSImage(size: NSSize(width: 20, height: 18))
img3.lockFocus()
img1?.draw(at: NSPoint(x: 0, y: 0), from: NSZeroRect, operation: NSCompositingOperation.sourceOver, fraction: 1.0)
img2?.draw(at: NSPoint(x: 10, y: 0), from: NSZeroRect, operation: NSCompositingOperation.sourceOver, fraction: 1.0)
img3.unlockFocus()
if let but = sItem.button {
but.image = img3
}
}
func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
}