2012-04-06 5 views
15

Ich versuche, UIAlertView über Tap oder Click von UITextField für IPad und IPhone zu zeigen. Ich mache eine IBAction und hänge sie mit Tap Down-Ereignis von UITextField an.Wie bekomme ich UITextField Tap Event?

Aber nicht korrekt funktioniert, bedeutet nicht immer, bei iphone und nicht im Fall von iPad arbeitet

- (IBAction) TopuchState 
{ 
    //function code 
} 

bitte helfen Wie kann ich dies tun.

enter image description here

+0

Touch Up innen? Hast du das probiert? –

+0

Wenn sich Ihr Textfeld in scrollview befindet, deaktivieren Sie die Option content contains in der inspect-Eigenschaft für die Scroll-Ansicht. Es sollte dann funktionieren. – Yawar

Antwort

21

Versuchen ein Ziel für das Hinzufügen, wenn ein bestimmtes Textfeld beginnt die Bearbeitung (UIControlEventEditingDidBegin):

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

Dank es hat meine Zeit gerettet. – BSKANIA

+0

Ich war so müde von Posts zu fragen, wie man die Tastatur durch Tippen außerhalb des Textfelds zu entlassen .... Danke, ein Haufen! (Ich habe UIControlEventAllTouchEvents verwendet) –

2

Ich denke, es ist einfacher, wenn Sie die Delegaten für die UITextField und implementieren das Verfahren eingestellt:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

dann innerhalb dieser Methode können Sie einfach erstellen und Ihre UIAlertView zeigen.

Werfen Sie einen Blick auf UITextFieldDelegate.

Viel Glück!

27

Wie Sie bereits sein UITextField delegieren abonniert, implementieren diese Methode:

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

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

    return YES; 
} 
+0

Perfekte Antwort. – Sam

+1

Ich habe fast 8-9 UITextFields on View und in iPad-Steuerelement Tags funktionieren auch nicht, wenn Sie übereinstimmen, welche UITextFields Ereignis in Brand gesetzt wurde. – Azhar

0

Connect TextField- mit Delegaten und Jetzt diese Funktion aufrufen !!

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

In Swift 3

ein Ziel für ein bestimmtes Textfeld für den Event hinzufügen .editingDidBegin in viewDidLoad Methode

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

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