我正在为 Mac OS X 制作一个状态栏应用程序,但是我只希望它在我单击状态栏项目时刷新。
这是我的代码:
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
@IBOutlet var menu: NSMenu!
var statusItem: NSStatusItem!;
@IBAction func quit(sender: AnyObject) {
NSApplication.sharedApplication().terminate(nil)
}
func Refresh(){
NSLog("Refresh")
}
func applicationDidFinishLaunching(aNotification: NSNotification?) {
statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
statusItem.title = "Battery Infomation"
statusItem.menu = self.menu
statusItem.highlightMode = true
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
}
如果有人可以帮助我做到这一点,我们将不胜感激。
最佳答案
您正在寻找的是 validateMenuItem:
。这是一个检查菜单是否应该启用或禁用的地方。因此,每次都会在菜单出现之前调用它。您可以使用它来更新标题以反射(reflect)电池状态。
override func validateMenuItem(menuItem: NSMenuItem) -> Bool {
if(menuItem.action == Selector("batteryStatus:")) {
NSLog("refresh!");
let now = NSDate()
menuItem.title = String(format:"%f", now.timeIntervalSince1970);
return true;
}
return true;
}
@IBAction func batteryStatus(sender: NSObject) {
}
关于macos - Swift:点击刷新菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214936/