我正在使用我的菜单栏应用程序并使NSStatusBarButton看起来像我想要的。然后我稍微重新构建了代码,并且在运行它之后突然没有任何编译器错误/警告,按钮不再显示在菜单栏中。
我已经检查了两次代码但是我没有找到它改变其行为的原因。现在好奇的部分是,如果我继续复制将我的代码粘贴到新创建的可可应用程序项目中,它再次正常工作。跆拳道?我是否以某种方式弄乱了我的项目设置?但那不可能。我实际上只是将从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
}
}