为什么UITextField成为FirstResponder在我的子视图控制器中不显示键盘?

时间:2012-06-23 12:27:11

标签: iphone ipad keyboard

在我的第一个ViewController中,我将一个UITextField设置为firstFirstResponder,并且焦点保持TextField和键盘自动出现。它运作正常。但后来我提出另一个子ViewController,它在这个ViewController中有3个UITextFields(A,B,C),我在这个子ViewController中设置了第一个UITextField(比如说A)成为FirstRirstResponder,焦点保持A但是键盘没有出现。我整天搜索了所有的答案,但没有找到。

这是代码。

在父VC中,我设置:

TestVC *testVC= [[TestVC alloc] init];
testVC.modalPresentationStyle=UIModalPresentationFormSheet;
[detailvc presentViewController:testVC animated:NO completion:nil];

在孩子VC TestVC中,我设置:

UITextField *v_matcode=[MyViewUtil addTextField:@"" x:10 y:10 width:100 height:40];
[self.view addSubview:v_matcode];
[v_matcode becomeFirstResponder];

这是addTextField():

+(UITextField *) addTextField:(NSString *)text x:(int)_x y:(int)_y width:(int)_width height:(int)_height {
  UITextField *v_txt = [[UITextField alloc] init];
  v_txt.frame= CGRectMake(_x, _y, _width, _height);
  v_txt.borderStyle = UITextBorderStyleRoundedRect;
  return v_txt;}

v_matcode具有焦点,但键盘不会出现。但是,如果我没有将此文本字段设置为FirstFirstResponder并让用户点击它,则键盘会正确显示。那是为什么?

1 个答案:

答案 0 :(得分:0)

尝试将动画设置为YES

[detailvc presentViewController:testVC animated:YES completion:nil];