在我的第一个 ViewController 中,我将一个 UITextField 设置为成为FirstResponder,并且焦点保持在 TextField 和键盘自动出现的位置。它工作正常。但是然后我在这个 ViewController 中展示了另一个具有 3 个 UITextFields(A、B、C)的子 ViewController,我在这个子 ViewController 中将第一个 UITextField(比如 A)设置为 becomeFirstResponder,焦点保持在 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 有焦点,但键盘没有出现。但是,如果我不将此文本字段设置为 FirstResponder 并让用户点击它,则键盘会正确显示。这是为什么?