每当用户选择任何文本时,我都要求在uiwebview上显示菜单项.
我试过了
let highlightMenuItem = UIMenuItem(title: "Highlight",action: #selector(ViewController.hightlight)) UIMenuController.sharedMenuController().menuItems = [highlightMenuItem]
解决方法
您可以通过继承UIWebView并重写canPerformAction(Swift 3)来实现此目的.然后,您需要做的就是为要禁用的任何操作返回false.
例:
class EditedUIMenuWebView: UIWebView { override func canPerformAction(_ action: Selector,withSender sender: AnyObject?) -> Bool { if action == #selector(cut(_:)) { return false } if action == #selector(paste(_:)) { return false } if action == #selector(select(_:)) { return false } if action == #selector(selectAll(_:)) { return false } ... return super.canPerformAction(action,withSender: sender) } }
如果您有任何问题,请询问!
编辑如果要禁用所有操作,但在canPerformAction中返回false可能更容易,并为您想要的那些返回true:
override func canPerformAction(_ action: Selector,withSender sender: AnyObject?) -> Bool { if action == #selector(copy(_:)) || action == #selector(customMethod(_:)) { return true } ... return false }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。