やりたいこと
TextField をタップしたときに表示されるポップアップから特定の編集アクションを禁止にする
UITextField のサブクラスを作成する
CustomTextField.swift
import UIKit
class CustomUITextField: UITextField {
// コピーとペーストを禁止にする
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(copy(_:)) || action == #selector(paste(_:)) {
return false
}
return true
}
}
canPerformAction(_:withSender:)
が各編集アクションに対する操作を制御しているのでこれを override する。return false をすることで編集アクションが無効になる。
コピーやペーストといった特定のアクションを禁止にする場合は、引数の action
が UIResponderStandardEditActions
プロトコルの該当のメソッドと同値であるかを判断してやればよい。