簡體   English   中英

有沒有辦法跟蹤空 uitextfield 中的字符刪除?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM