эквивалент textViewShouldBeginEditing для ТЕКСТОВОГО ПОЛЯ?

#iphone #objective-c #cocoa-touch #uitextfield

#iPhone #objective-c #cocoa-touch #uitextfield

Вопрос:

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

Теперь я добавил UITextField и задавался вопросом, как добавить тот же вспомогательный вид на клавиатуру, как только он появится для UITextField. Существует ли эквивалент следующего кода для UITextField? textFieldShouldBeginEditing не существует…

  - (BOOL)textViewShouldBeginEditing:(UITextView *)aTextView {


    if (aTextView.inputAccessoryView == nil) {
        aTextView.inputAccessoryView = accessoryView;    
        self.accessoryView = nil; // After setting the accessory view for the text view, we no longer need a reference to the accessory view
    }

    return YES;
}
  

Ответ №1:

Существует протокол UITextFieldDelegate, в котором вы можете найти метод

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
  

Вы искали это?

Ответ №2:

Это действительно существует, за исключением того, что оно найдено в UITextFieldDelegate протоколе.

Если ваш контроллер представления управляет как текстовым представлением, так и текстовым полем, пусть класс controller примет оба UITextViewDelegate и UITextFieldDelegate .

Ответ №3:

Для UITextField ваш код должен быть таким, как показано ниже.

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)aTextField {


    if (aTextField .inputAccessoryView == nil) {
        aTextField .inputAccessoryView = accessoryView;    
        aTextField.accessoryView = nil; // After setting the accessory view for the text view, we no longer need a reference to the accessory view
    }

    return YES;
}
  

Подтвердите с помощью UITextFieldDelegate протокола для UITextField