当我点击 UITextField 时,我试图打开一个表视图控制器。我在我的 UITextField 中添加了一个 push segue。但是,不是切换到新视图,而是打开了一个小键盘。
可能是什么问题?
当我点击 UITextField 时,我试图打开一个表视图控制器。我在我的 UITextField 中添加了一个 push segue。但是,不是切换到新视图,而是打开了一个小键盘。
可能是什么问题?
.m 文件中的第一个声明 UITextView 委托:
@interface ViewController ()<UITextFieldDelegate>
在 viewDidLoad 中:
self.textField.delegate = self;
实现textFieldDidBeginEditing:(UITextField *)textField
方法:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
//segue over here
}
尝试实现该textFieldShouldBeginEditing:
UITextViewDelegate
方法。它看起来像:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField == myTextField) {
// Open the new ViewController here
return NO;
}
return YES;
}
您还必须设置委托:myTextField.delegate = self;
你需要检查一下UItapGestureRecognizer
。当用户点击时,您需要在 textField 上添加 TapGesture 识别器textField
。然后调用 tapGestureRecognizer 方法并在这里做你想做的事。
UITapGestureRecognizer * recog=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped:)];
recog.numberOfTapsRequired=1;
recog.delegate=self;
[self.view addGestureRecognizer:recog];
-(void)tapped:(UIGestureRecognizer *)gesture
{
// Do what you want here
}
2)第二种方式是
在 .h 文件中添加 TextField 委托。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
//Do what you want here..
}
试试这个...