在这里给出了一些优秀的建议后,我通过将菜单项操作与字符串进行比较来处理validateMenuItem
- 这样您就可以更改菜单的标记或文本,它仍然有效。好吧,直到今天,当最新的Xcode更新吐出这个错误时:
No method declared with Objective-C selector 'toggleHidden'
在此代码中......
override func validateMenuItem(menuItem: NSMenuItem) -> Bool {
let c = selectedCards().count
switch menuItem.action {
case "toggleHidden": if c == 1 { if selectedCard()!.info["hidden"] ?? "false" == true { return true } else { return false } }
case "toggleIgnore": if c == 1 { if selectedCard()!.info["ignore"] ?? "false" == true { return true } else { return false } }
default: return true
}
return true
}
有趣的是,这实际上是下一段代码...
@IBAction func toggleHidden(sender: NSObject) {
...
}
现在我知道action
中的项目实际上是选择器,所以我试过了......
case Selector("toggleHidden"):
编译正常但返回相同的错误。
这在更新之前工作正常,是否有人知道为什么它现在可能会吐出错误?