我正在为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
}
}
如果任何人可以帮助我这样做,那将是值得赞赏的。
答案 0 :(得分:4)
您要找的是validateMenuItem:
。它是一个检查菜单是应该启用还是禁用的地方。因此,它会在每次菜单出现之前调用。您可以使用它来更新标题以反映电池状态。
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) {
}