- (void) textFieldDidBeginEditing: (UITextField *) отправитель.. эта функция не вызывается, когда я выбираю текстовое поле?

Я использую -(void)textFieldDidBeginEditing:(UITextField *)sender эту функцию в своем приложении. это не вызывается, когда я выбираю текстовое поле. здесь код...

-(void)textFieldDidBeginEditing:(UITextField *)sender{  
    if([sender isEqual:txtName])//txtName is the IBOutlet of the UITextField  
    {  
        NSLog(@"Name");  
    }  
    else{  
        NSLog(@"NO_Name");  
    }  
}

Ответы

Ответ 1

Вы установили делегирование экземпляра UITextField в текущий контроллер вида следующим образом:

textField.delegate = self; (self означает экземпляр, где callback textFieldDidBeginEditing переопределяется)

Ответ 2

Обязательно выполните 2 простых шага

1 - выполнить делегат UITextFieldDelegate

@interface yourViewController : UIViewController <UITextFieldDelegate>

2 - Установите делегат

yourTextField.delegate = self

Если у вас много текстовых полей в вашем представлении, вы можете установить делегат для всех текстовых полей, таких как

for (id subView in self.view.subviews)
    {
        if ([subView isKindOfClass:[UITextField class]]) {
            [subView setDelegate:self];
        }
    }

Ответ 3

Вы должны включить UITextFieldDelegate в файл .h

@interface yourViewController : UIViewController <UITextFieldDelegate>

Ответ 4

Вы должны включить UITextFieldDelegate в свой .h файл, а также добавить YourTextField.delegate = self