私は、アプリケーション内のいくつかの機能を制御するためにシステムステータスバーのメニュー付きのカスタムアイテムを使用しています。ここに私のコードは次のとおりです。OS X 10.11で認識できないセレクタ
import Foundation
class StatusBarMenuController {
var statusItem: NSStatusItem
init() {
self.statusItem = NSStatusBar.system().statusItem(withLength: NSSquareStatusItemLength)
statusItem.image = NSImage(named: "StatusBarButtonImage")
let menu = NSMenu()
let isListeningMenuItem = NSMenuItem(title: "Listening", action: #selector(StatusBarMenuController.isListeningAction(_:)), keyEquivalent: "")
isListeningMenuItem.isAlternate = true
isListeningMenuItem.target = self
isListeningMenuItem.state = NSOnState
menu.addItem(isListeningMenuItem)
statusItem.menu = menu
}
@objc func isListeningAction(_ item: NSMenuItem) {
if (item.state == NSOffState) {
item.state = NSOnState
// Handle switch-on action...
}
else {
item.state = NSOffState
// Handle switch-off action...
}
}
}
このクラスはAppDelegate
のapplicationDidFinishLaunching
方法でインスタンス化されます。
すべてが最新のMacOS(10.12)でうまく動作します - 私は複数のコンピュータで試しましたが、古いバージョンのosを持つマシンでアプリケーションを起動しようとすると、 OS X 10.11、それはすぐにクラッシュします。
クラッシュの詳細:
アプリケーション固有の情報: 認識されていないセレクタ - [MyAppName.StatusBarMenuController methodForSelector:]
アボートは()
任意のアイデアを呼ばなぜこの出来事はありますか? NSObject
から派生