【问题标题】:NSStatusBar + Swift: title shows and immediately disappearNSStatusBar + Swift:标题显示并立即消失
【发布时间】:2017-06-15 12:38:45
【问题描述】:

我想为 macOS 制作状态栏,但是在我运行应用程序后标题显示并立即消失

func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
        let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
        statusItem.title = "Hello"

    }

我认为引用有问题,但不知道如何解决这个问题。

【问题讨论】:

    标签: swift macos nsstatusbar


    【解决方案1】:

    确实需要对状态项的强引用

    var statusItem : NSStatusItem!
    
    func applicationDidFinishLaunching(_ aNotification: Notification) {
            // Insert code here to initialize your application
            statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
            statusItem.title = "Hello"
    
    }
    

    不过我建议使用闭包来初始化状态项

    let statusItem : NSStatusItem = {
        let item =  NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)
        item.title = "Hello"
        return item
    }()
    

    【讨论】:

    • 我已经在 Xcode 9 和 Swift 4 中尝试过这个,但它也不起作用 - 项目出现一眨眼,然后立即消失。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多