没有使用Objective-C选择器声明的方法

时间:2016-03-22 19:17:52

标签: xcode swift

在这里给出了一些优秀的建议后,我通过将菜单项操作与字符串进行比较来处理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"):

编译正常但返回相同的错误。

这在更新之前工作正常,是否有人知道为什么它现在可能会吐出错误?

0 个答案:

没有答案