Как узнать, когда UITextView стал первым респондентом - PullRequest
23 голосов
/ 11 августа 2011

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

Ответы [ 5 ]

53 голосов
/ 03 августа 2012

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

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView

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

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

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

4 голосов
/ 31 октября 2013

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

-(BOOL) becomeFirstResponder
{
    // Your stuff here
    return YES;
}
3 голосов
/ 08 мая 2018

Решение Swift 4

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {           
        return true
 }
2 голосов
/ 12 августа 2017

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

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

  return false
}
1 голос
/ 06 октября 2017

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

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

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

РЕДАКТИРОВАТЬ: те же методы доступны для текстовых полей.

...