Reputation: 20670
I am trying to show UIAlertView on Tap or Click of UITextField for both IPad and IPhone. I make an IBAction and Attach it with Tap Down event of UITextField.
But its not working correctly, means not always, in case of iphone and not working in-case of iPad
- (IBAction) TopuchState
{
//function code
}
please help How could I do this.
Upvotes: 23
Views: 43498
Reputation: 4661
In Swift 3
Add a target for a particular text field for the event .editingDidBegin in viewDidLoad method
self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin)
func textFieldTouched(textField: UITextField) {
//Show AlertView
}
Upvotes: 4
Reputation: 99
Connect TextField with delegate and Now calling this function!!
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
textView.text=@" ";
return YES;
}
Upvotes: 1
Reputation: 2381
Try adding a target for when a particular text field begins editing (UIControlEventEditingDidBegin
):
[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];
Upvotes: 27
Reputation: 8393
As you are already subscribed to be UITextField delegate, implement this method:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Alert Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
[alert show];
return YES;
}
Upvotes: 28
Reputation: 1524
I think it's easier if you set the delegate for the UITextField
and implement the method:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
then inside that method you can easily create and show your UIAlertView
.
Take a look at UITextFieldDelegate.
Good luck!
Upvotes: 4