2012-04-06 56 views
15

我试图显示UIAlertView点击或点击UITextField iPad和IPhone。我做了一个IBAction并使用UITextField的Tap Down事件附加它。如何获取UITextField点击事件?

但其工作不正常,意味着并非总是如此,在iPhone的情况下,而不是在案例的iPad

工作
- (IBAction) TopuchState 
{ 
    //function code 
} 

请帮助我如何能做到这一点。

enter image description here

+0

润色里面的事件.editingDidBegin?你试过那个吗? – 2012-04-06 14:53:14

+0

如果您的文本框位于滚动视图内,则取消选中延迟内容触及滚动视图的检查属性。它应该工作。 – Yawar 2016-10-06 11:43:52

回答

21

尝试增加一个目标,当一个特定的文本字段开始编辑(UIControlEventEditingDidBegin):

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

谢谢它节省了我的时间。 – BSKANIA 2014-05-27 06:58:10

+0

我很厌烦帖子询问如何通过点击文本框外面来解除键盘....感谢一堆! (我用UIControlEventAllTouchEvents) – 2017-07-12 20:22:38

2

我认为,如果你设置了UITextField委托并实现方法很简单:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

那么该方法内,你可以轻松地创建和显示你UIAlertView

看看UITextFieldDelegate

祝你好运!

27

正如你已经订阅是的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; 
} 
+0

完美答案。 – Sam 2012-04-06 15:09:48

+1

我在视图上有近8-9个UITextFields,如果您匹配哪个UITextFields的事件触发,iPad控件的标签也不起作用。 – Azhar 2012-04-06 17:27:13

0

连接文本字段与委托,现在调用这个功能!

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

在斯威夫特3

新增目标为特定文本字段在viewDidLoad方法

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

func textFieldTouched(textField: UITextField) { 
//Show AlertView 
} 
相关问题