在inputAccessoryView的UITextField不会becomeFirstRespon

2019-10-19 00:27发布

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

Answer 1:

好吧,我理解了它自己。 事实证明,(我认为)的屏幕键盘上(以及它的附属视图),有它自己的窗口。 所以,songInfoView的viewDidAppear方法中,我不得不打电话

[self.view.window makeKeyAndVisible];

请记住,你所使用的键盘消失后加载键盘视图控制器内再次调用它。 希望这可以帮助别人的道路。



文章来源: UITextField in inputAccessoryView won't becomeFirstResponder