1

我有一个名为 songInfoView 的视图,带有 3 个 UITextField 和一个 UIButton。我在父视图中创建了一个临时 UITextField 以调出键盘并将 songInfoView 分配为 inputAccessoryView。这按预期工作。

然后,我尝试在 songInfoView 中设置一个文本字段作为第一响应者。光标移动到该字段,但是当我尝试键入时,什么也没有发生。我可以点击文本字段并按预期输入,但我希望它无需点击即可工作。我错过了什么吗?我这样做不正常吗?谢谢你的帮助。

songInfoView = [[SongInfoViewController alloc]init];
songInfoView.delegate = self;

UITextField *tempTextField = [[UITextField alloc]initWithFrame:CGRectMake(10.0f, 10.0f, 50.0f, 30.0f)];
[self.view addSubview:tempTextField];
[tempTextField setInputAccessoryView:songInfoView.view];
[tempTextField becomeFirstResponder];
[songInfoView.titleTextField becomeFirstResponder];
4

1 回答 1

1

嗯,我自己想通了。事实证明(我认为)屏幕键盘(连同它的附件视图)有它自己的窗口。所以,在 songInfoView 的 viewDidAppear 方法中,我不得不调用

[self.view.window makeKeyAndVisible];

只要记住在键盘消失后用于加载键盘的视图控制器中再次调用它。希望这可以帮助其他人。

于 2013-11-26T04:01:33.267 回答