1

当我点击 UITextField 时,我试图打开一个表视图控制器。我在我的 UITextField 中添加了一个 push segue。但是,不是切换到新视图,而是打开了一个小键盘。

可能是什么问题?

4

3 回答 3

3

.m 文件中的第一个声明 UITextView 委托:

 @interface ViewController ()<UITextFieldDelegate>

在 viewDidLoad 中:

 self.textField.delegate = self;

实现textFieldDidBeginEditing:(UITextField *)textField方法:

 - (void)textFieldDidBeginEditing:(UITextField *)textField
  {
       //segue over here
  }
于 2013-09-27T11:17:10.780 回答
3

尝试实现该textFieldShouldBeginEditing: UITextViewDelegate方法。它看起来像:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if (textField == myTextField) {
        // Open the new ViewController here

        return NO;
    }
    return YES;
}

您还必须设置委托:myTextField.delegate = self;

于 2013-09-27T11:17:11.700 回答
1

你需要检查一下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..
  }

试试这个...

于 2013-09-27T11:15:44.457 回答