0

私の最初の ViewController では、1 つの UITextField を作成して FirstResponder にし、TextField とキーボードが自動的に表示されることにフォーカスを置きます。それはうまく動作します。しかし、次に、この ViewController に 3 つの UITextField (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になるように設定せず、ユーザーがタップできるようにすると、キーボードが正しく表示されます。何故ですか?

4

1 に答える 1