iOS 10. Swift 3
我用UITextView将它放入我的班级。似乎是删除弹出菜单中某些功能的最佳答案。最初有一个崩溃的问题,我接受并投票认为这个问题的答案是正确的...但是在进一步测试时......我发现代码根本没有按预期工作。
不幸它实际上什么都不做,绝对没有!即使我试图忽略它们,除了编译之外,它们似乎正在捕捉菜单选项,而不是去做它们。
就我在其他SO帖子中所说的那样,它似乎曾经在目标C中工作,但在Swift中却没有?有没有人设法在Swift中获得一个看起来像这样的工作版本,这里有一些微妙的代码更改我在这里缺失。
override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if (action == #selector(cut)) {
return false
}
return super.canPerformAction(action, withSender: sender)
}
答案 0 :(得分:1)
您需要重新组织一下您的实现。它应该是:
override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if (action == #selector(delete)) {
return false
} else {
return super.canPerformAction(action, withSender: sender)
}
}
如你所知,你忽略了super.canPerformAction
的结果并且总是返回true。这很糟糕,因为你的班级没有回应每一个选择器。