我有一个状态栏应用程序,当我打开它时,它会向我显示信息,但如果这些信息正在改变(这里是百分比),我就不会直接看到它。我必须重新打开它才能显示新的信息。
我在这里打开应用程序一次90%:
然后我等了一段时间重新打开它,它已经100%了:
有没有办法实时显示""状态栏应用程序中的标签和内容?
答案 0 :(得分:1)
之前遇到过它:
https://github.com/adamhartford/PopStatusItem
相当不错,在弹出项目上似乎是线程友好的(已经使用异步线程测试过)。 修改的
另外,因为用户需要实际状态栏图像/文本更新而不是弹出窗口...
let sysStatusBar = NSStatusBar.systemStatusBar()
dispatch_async(dispatch_main(){
let dele = NSApp.delegate as? AppDelegate
dele.statusBarValue = 100.0
// from the delegate or a singleton method, have statusbarValue observed
// and update the App.delegate.statusBarItem.image accordingly.
// make sure it happens on the main thread... then the image / text
// will update...
}
您正在做的是更新您添加NSStatusBarItem并在那里更新图像的代理。在我的示例中,我更新了“statusBarValue”,但如果您只是为该值添加绑定或观察者,则可以轻松更新图像。
ONCE AGAIN 确保在主线程上发生这种情况,或者UI只是忽略您的更新。所以来自后台线程等的更新......需要在主线程上调用。