В настоящее время я пытаюсь предотвратить отображение всех UIResponderStandardEditActions
, таких как copy
, paste
, delete
, когда UITextfield
пусто.Я хотел бы показать их, только если пользователь вводит сообщение.Я пробовал 2 решения и в настоящее время не работает, я не уверен, если это связано с iOS 12
или.Я пробовал overriding
метод canPerformAction
как в UITextfield
extension
, так и с использованием пользовательского класса, позже присвоенного UITextfield
в Storyboard
, но не повезло.Есть ли другой способ сделать это.Вот что я попробовал.
extension UITextField {
open override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if self.text!.isEmpty {
return false
}
return action == #selector(UIResponderStandardEditActions.paste(_:))
}
}
class CustomTextField: UITextField {
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(UIResponderStandardEditActions.paste(_:)) || action == #selector(UIResponderStandardEditActions.copy(_:)) || action == #selector(UIResponderStandardEditActions.delete(_:)) {
return false
}
return true
}
}