在UITextField长按,现在有一些选项,即'替换......'和'分享...'除了' cut',' copy',' paste'并且'定义'选项。可以禁用这些“剪切”,“复制”,“粘贴”等功能。并且'定义'选项通过' canPerformAction:withSender'方法,但我找不到一种方法来禁用这些'替换...'和'分享...'选项。是否有任何选择器可用于此或可以通过任何其他方式禁用?有没有人遇到这个并成功禁用这些选项?请建议。
答案 0 :(得分:0)
您可以拦截长按事件并为您提供自己的实施和所需行为。
请检查接受的答案:
How to intercept long press on UITextView without disabling context menu?
或提供允许的行动
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(copy:) ||
action == @selector(selectAll:)) {
return true;
}
return false;
}
有关详情:How to disable copy paste option from UITextField programmatically
答案 1 :(得分:0)
聚会迟到,但一种选择是使用动作的描述。 Apple 尚未将 Share
作为 UIResponderStandardEditActions
项之一公开。因此,解决方法是使用 action's description
。不是一个优雅的解决方案,但应该可以解决问题:
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(UIResponderStandardEditActions.copy(_:)) ||
action.description.contains("_share") { // disabling share
return false
} else {
return super.canPerformAction(action, withSender: sender)
}
}