如何获得UITextField Tap事件?

时间:2012-04-06 14:46:20

标签: iphone objective-c ios ipad ios-universal-app

我试图在Tap上显示UIAlertView,或者在UITextField上显示IPad和IPhone。我做了一个IBAction并用UITextField的Tap Down事件附上它。

但它不能正常工作,并不总是意味着,如果是iphone而不是在iPad的情况下工作

- (IBAction) TopuchState
{
    //function code
}

请帮助我怎么能这样做。

enter image description here

5 个答案:

答案 0 :(得分:28)

由于您已经订阅了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;
}

答案 1 :(得分:23)

尝试为特定文本字段开始编辑时添加目标(UIControlEventEditingDidBegin):

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

答案 2 :(得分:3)

在Swift 3中

为viewDidLoad方法中的事件.editingDidBegin添加特定文本字段的目标

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

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

答案 3 :(得分:2)

我认为如果您为UITextField设置委托并实施该方法会更容易:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

然后在该方法中,您可以轻松创建并显示UIAlertView

看看UITextFieldDelegate

祝你好运!

答案 4 :(得分:1)

将TextField与委托连接,然后调用此函数!!

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {       
   textView.text=@"   ";
   return YES;
}