Cocoa SystemStatusBar::NSStatusItem的选择器无法识别

Cocoa SystemStatusBar::NSStatusItem的选择器无法识别,cocoa,swift,selector,nsstatusitem,nsstatusbar,Cocoa,Swift,Selector,Nsstatusitem,Nsstatusbar,单击NSStatusItem时,我试图接收事件(执行操作)。但是,这是我在控制台中看到的(应用程序不会崩溃)发送到实例的无法识别的选择器 2014-11-14 00:42:29.565 T1[90662:303] -[NSSystemStatusBar somethingHappened]: unrecognized selector sent to instance 0x61000008c990 2014-11-14 00:42:29.573 T1[90662:303] ( 0 C

单击
NSStatusItem
时,我试图接收事件(执行操作)。但是,这是我在控制台中看到的(应用程序不会崩溃)发送到实例的无法识别的选择器

2014-11-14 00:42:29.565 T1[90662:303] -[NSSystemStatusBar somethingHappened]: unrecognized selector sent to instance 0x61000008c990
2014-11-14 00:42:29.573 T1[90662:303] (
    0   CoreFoundation  
. . .
这是我正在尝试使用的代码:

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate
{
    var statusBar = NSStatusBar.systemStatusBar();
    var statusBarItem : NSStatusItem! = NSStatusItem();
    override func awakeFromNib()
    {   
        statusBarItem = statusBar.statusItemWithLength(-1)
        statusBarItem.target = self
        statusBarItem.action = Selector("somethingHappened");
        statusBarItem.menu = nil;
    }
    @IBAction func somethingHappened(sender: NSStatusItem)
    {
        println("Hello from StatusItem");
    }
}
为了理解这其中的错误,我将两个完全相似的Objective-C教程翻译成了Swift,但似乎有一些东西我遗漏了,但无法理解

statusBarItem.target = NSStatusBar.systemStatusBar()
statusBarItem.action = Selector("somethingHappened")
应该是

statusBarItem.target = self
statusBarItem.action = Selector("somethingHappened:");
操作目标是
AppDelegate
实例和选择器“SomethingOccessed:” (带冒号),因为该方法使用一个参数

对于Swift 2.2/Xcode 7.3,它是

statusBarItem.action = #selector(somethingHappened(_:));
应该是

statusBarItem.target = self
statusBarItem.action = Selector("somethingHappened:");
操作目标是
AppDelegate
实例和选择器“SomethingOccessed:” (带冒号),因为该方法使用一个参数

对于Swift 2.2/Xcode 7.3,它是

statusBarItem.action = #selector(somethingHappened(_:));
应该是

statusBarItem.target = self
statusBarItem.action = Selector("somethingHappened:");
操作目标是
AppDelegate
实例和选择器“SomethingOccessed:” (带冒号),因为该方法使用一个参数

对于Swift 2.2/Xcode 7.3,它是

statusBarItem.action = #selector(somethingHappened(_:));
应该是

statusBarItem.target = self
statusBarItem.action = Selector("somethingHappened:");
操作目标是
AppDelegate
实例和选择器“SomethingOccessed:” (带冒号),因为该方法使用一个参数

对于Swift 2.2/Xcode 7.3,它是

statusBarItem.action = #selector(somethingHappened(_:));

我发誓我做到了,但还是失败了。也许我在别的地方做错了什么。但它现在起作用了。谢谢你。我发誓我做到了,但还是失败了。也许我在别的地方做错了什么。但它现在起作用了。谢谢你。我发誓我做到了,但还是失败了。也许我在别的地方做错了什么。但它现在起作用了。谢谢你。我发誓我做到了,但还是失败了。也许我在别的地方做错了什么。但它现在起作用了。非常感谢。