У меня есть UITextField, который содержит текст: «Имя пользователя». Я хочу стереть имя пользователя, как только пользователь выберет текстовое поле для редактирования.

Есть ли лучший способ, чем использовать метод селектора?

Вот метод, который я сейчас использую, но он, похоже, не работает.

usernameTextField.addTarget(self, action: #selector(selectedUsernameField), for: .editingChanged)

func selectedUsernameField(sender: UITextField){
        print("selectedUsernameField")
        usernameTextField.text = ""
    }
1
SaundersB 28 Май 2017 в 01:52

2 ответа

Лучший ответ

В этом случае вы должны установить заполнитель для usernameTextField.

usernameTextField.placeholder = "UserName"

Он исчезнет, когда пользователь начнет печатать, что вы хотите.

2
Maddy 27 Май 2017 в 23:58

Вы можете использовать эту функцию:

func textFieldDidBeginEditing(_ textField: UITextField) {
    if textField == usernameTextField{
         textField.text = ""
    }
}

Он вызывается, когда текстовое поле начинает редактирование.

Хотя, чтобы использовать его, вам нужно сделать ваш класс UITextFieldDelegate

А также сказать:

usernameTextField.delegate = self

В viewDidLoad.

2
joshLor 27 Май 2017 в 23:00