textfielddid начала редактировать не обновляя ярлык - PullRequest
0 голосов
/ 28 февраля 2020

Мой быстрый код ниже цели - когда пользователь вводит что-то в текстовое поле, оно отражает это в currentPageLabel. Забавное c, которое, как я думал, сделает это, не имеет никакого эффекта. Ничего, что я ввожу в текстовое поле, не отображается на ярлыке. Весь мой код не использует раскадровку.

var currentPageLabel = UILabel()
var tt = UITextfield()

func textFieldDidBeginEditing(_ textField: UITextField) {
    currentPageLabel.text = tt.text
}

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

В этом случае вы можете использовать функцию addTarget! Просто добавьте цель к вашему textField в viewDidload методу и добавьте метод селектора, помеченный @objc textFieldDidChange. Функция Inside textFieldDidChange устанавливает текст для вашей метки!

textfield.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)


@objc func textFieldDidChange(_ textField: UITextField) {
    currentPageLabel.text = textField.text
}
1 голос
/ 29 февраля 2020

Попробуйте этот метод UITextFieldDelegate:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let text = (textField.text as NSString?)?.replacingCharacters(in: range, with: string)
    currentPageLabel.text = text
    return true
}
...