Ответ 1
Попробуйте добавить цель, когда определенное текстовое поле начинает редактирование (UIControlEventEditingDidBegin
):
[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];
Я пытаюсь показать UIAlertView по щелчку или клику UITextField для IPad и IPhone. Я делаю IBAction и присоединяю его к событию Tap Down UITextField.
Но он не работает правильно, значит не всегда, в случае iphone и не работает в случае iPad
- (IBAction) TopuchState
{
//function code
}
Пожалуйста, помогите Как я могу это сделать.
Попробуйте добавить цель, когда определенное текстовое поле начинает редактирование (UIControlEventEditingDidBegin
):
[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];
Поскольку вы уже подписались на делегат 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;
}
Мне легче, если вы установите делегат для UITextField
и реализуете метод:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
то внутри этого метода вы можете легко создать и показать свой UIAlertView
.
Посмотрите UITextFieldDelegate.
Удачи!
Подключите TextField с делегатом и теперь вызываем эту функцию!!
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[email protected]" ";
return YES;
}
В Swift 3
Добавить цель для определенного текстового поля для события .editingDidBegin в методе viewDidLoad
self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin)
func textFieldTouched(textField: UITextField) {
//Show AlertView
}