Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么UITextField becomeFirstResponder在我的孩子视图控制器中不显示键盘?_Iphone_Ipad_Keyboard - Fatal编程技术网

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

Iphone 为什么UITextField becomeFirstResponder在我的孩子视图控制器中不显示键盘?,iphone,ipad,keyboard,Iphone,Ipad,Keyboard,在我的第一个ViewController中,我将一个UITextField作为第一个响应程序,焦点保持在TextField和键盘自动显示的位置。它很好用。然后我介绍了另一个子ViewController,它在这个ViewController中有3个UITextField A、B、C,我将第一个UITextField设置为A成为这个子ViewController中的第一个响应者,焦点保持在A,但键盘没有出现。我找了一整天所有的答案,但什么也没找到 这是代码 在父VC中,我设置: TestVC *t

在我的第一个ViewController中,我将一个UITextField作为第一个响应程序,焦点保持在TextField和键盘自动显示的位置。它很好用。然后我介绍了另一个子ViewController,它在这个ViewController中有3个UITextField A、B、C,我将第一个UITextField设置为A成为这个子ViewController中的第一个响应者,焦点保持在A,但键盘没有出现。我找了一整天所有的答案,但什么也没找到

这是代码

在父VC中,我设置:

TestVC *testVC= [[TestVC alloc] init];
testVC.modalPresentationStyle=UIModalPresentationFormSheet;
[detailvc presentViewController:testVC animated:NO completion:nil];
UITextField *v_matcode=[MyViewUtil addTextField:@"" x:10 y:10 width:100 height:40];
[self.view addSubview:v_matcode];
[v_matcode becomeFirstResponder];
在child VC TestVC中,我设置:

TestVC *testVC= [[TestVC alloc] init];
testVC.modalPresentationStyle=UIModalPresentationFormSheet;
[detailvc presentViewController:testVC animated:NO completion:nil];
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具有焦点,但键盘不显示。但如果我不将此文本字段设置为FirstResponder并让用户点击它,键盘就会正确显示。为什么会这样?

尝试将动画设置为“是”


[detailvc presentViewController:testVC动画:是完成:无]

addTextField:代码看起来像什么?到目前为止,看起来你做的一切都是对的,但是addTextField:是一种自定义方法,所以它可能会做一些古怪的事情。我同意@michael dautermann的观点,你能发布addTextField:方法的代码吗,这可能会有帮助。现在无法测试它,但请尝试将调用包装为成为调度\u asyncdispatch\u get\u main\u队列中的第一响应者,^{/*call here*/};您似乎是从另一个控制器(即非self)[detailvc presentViewController:testVC animated:NO completion:nil]显示模式视图控制器;是否有任何原因说明detailvc与进行presentModalViewController调用的视图控制器之间的关系?我猜您正在loadView中添加文本字段。尝试将becomeFirstResponder代码移动到ViewDidDisplay中,以便在尝试显示键盘之前视图已经可见。