Подтвердить что ты не робот

Как узнать, когда UITextView стал первым респондентом

Как обращаться, когда uitextview стал первым ответчиком. У меня есть текст в текстовом виде, и я хочу, когда просмотр стал активным, чтобы очистить текст. Как я могу это сделать? Спасибо заранее

4b9b3361

Ответ 1

Вы можете определенно использовать метод UITextViewDelegate для:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView

Просто верните YES и перехватите внутри этого метода. Вы также можете сделать это для UITextFields с помощью UITextFieldDelegate и:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

Надеюсь, что это поможет.

Ответ 2

Предыдущие ответы отлично подходят для UITextBox, но если у вас есть пользовательский класс, полученный из NSResponder, и вам нужно знать, когда он станет первым ответчиком:

-(BOOL) becomeFirstResponder
{
    // Your stuff here
    return YES;
}

Ответ 3

Как и выше, вы можете переопределить startFirstResponder, но обратите внимание, что вы должны вызывать реализацию суперкласса. Если вы этого не сделаете, такие вещи, как появление клавиатуры в текстовом поле, не будут работать. то есть.

override func becomeFirstResponder() -> Bool {
  if super.becomeFirstResponder() {
    // set up the control state
    return true
  }

  return false
}

Ответ 4

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

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

Если вы действительно не беспокоитесь о том, какое поле активно и просто хотите очистить текст после того, как поле будет задействовано, вы можете использовать любую функцию.

EDIT: те же методы доступны для текстовых полей.