[英]Is there a way to track character remove in empty uitextfield?
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
當文本字段已經為空並且按下后退按鈕時不調用
我想辭去第一響應者的職務,並使視圖中以前的 uitextfield 成為第一響應者
有沒有辦法做到這一點?
為了實現您想要的,您必須UITextField
並創建一個自定義協議,該協議將在每次按下刪除時通知您:
protocol CustomTextFieldDelegate: AnyObject {
func deleteBackwardPressed()
}
class CustomTextField: UITextField {
weak var deleteDelegate: CustomTextFieldDelegate?
override func deleteBackward() {
super.deleteBackward()
deleteDelegate?.deleteBackwardPressed()
}
}
創建UIViewController
時,它應該符合CustomTextFieldDelegate
。 也不要忘記將委托分配給您的自定義文本字段。 一個簡化的 ViewController 看起來像這樣:
class ViewController: UIViewController, CustomTextFieldDelegate {
private var isTextFieldEmpty = false
private let customTextField = CustomTextField()
override func viewDidLoad() {
super.viewDidLoad()
customTextField.deleteDelegate = self
}
func deleteBackwardPressed() {
if isTextFieldEmpty {
customTextField.resignFirstResponder()
} else {
isTextFieldEmpty = customTextField.text?.count == 0
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.