Как получить UITextField Tap Event?

Я пытаюсь показать UIAlertView по щелчку или клику UITextField для IPad и IPhone. Я делаю IBAction и присоединяю его к событию Tap Down UITextField.

Но он не работает правильно, значит не всегда, в случае iphone и не работает в случае iPad

- (IBAction) TopuchState
{
    //function code
}

Пожалуйста, помогите Как я могу это сделать.

enter image description here

Ответы

Ответ 1

Попробуйте добавить цель, когда определенное текстовое поле начинает редактирование (UIControlEventEditingDidBegin):

 [textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];

Ответ 2

Поскольку вы уже подписались на делегат UITextField, выполните этот метод:

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

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Alert Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
    [alert show];

    return YES;
}

Ответ 3

Мне легче, если вы установите делегат для UITextField и реализуете метод:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

то внутри этого метода вы можете легко создать и показать свой UIAlertView.

Посмотрите UITextFieldDelegate.

Удачи!

Ответ 4

Подключите TextField с делегатом и теперь вызываем эту функцию!!

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {       
   [email protected]"   ";
   return YES;
}

Ответ 5

В Swift 3

Добавить цель для определенного текстового поля для события .editingDidBegin в методе viewDidLoad

self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin)

func textFieldTouched(textField: UITextField) {
//Show AlertView
}