Xcode NSStatusBar项目未出现

时间:2019-02-19 18:04:05

标签: swift nsstatusitem nsstatusbar

我正在尝试将一个项目添加到状态栏中,但是当我启动该应用程序时,该项目仅在左上方显示一秒钟,然后迅速消失。

我仔细阅读了文档,发现最近发生了变化,例如newarr[:, :-1, ...]已成为statusItem.title。但似乎没有其他任何遗漏。有帮助吗?

这是我的代码:

statusItem.button?.title

2 个答案:

答案 0 :(得分:1)

  1. AppDelegate应该是 NSMenuDelegate
  2. 的实例
  3. 在创建时定义 statusItem
  4. 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(_:))
        }
    }
    

答案 1 :(得分:1)

啊,太好了。没问题!谢谢萨利赫。在玩完我们的两个代码之后,我的似乎可以在顶部使用var声明,而无需使用NSMenuDelegate实例。我的问题似乎是我在说:

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

我要做的就是删除'let'并说:

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