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
を返すために容易になることがあります。私の編集を参照@Nitesh
override func canPerformAction(_ action: Selector, withSender sender: AnyObject?) -> Bool {
if action == #selector(copy(_:)) || action == #selector(customMethod(_:)) {
return true
}
...
return false
}
。 – Ike10
ありがとう@ Ike10、編集のため、はいこれは他のアクションを無視する良い方法です。私たちの習慣を保つだけです。 – Nitesh
コピーアクションを除外するには、これは機能しません。コピーアクションをフィルタリングするには、独自のメニューコントローラを表示する必要があります –