inputAccessoryView中的UITextField不会成为FirstResponder

时间:2013-11-14 16:36:11

标签: ios objective-c uitextfield becomefirstresponder

我有一个名为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];

1 个答案:

答案 0 :(得分:1)

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

[self.view.window makeKeyAndVisible];

请记住在键盘消失后用于加载键盘的视图控制器中再次调用它。希望这有助于其他人在路上。