ios - inputAccessoryView 中的 UITextField 不会成为 FirstResponder

标签 ios objective-c uitextfield becomefirstresponder

我有一个名为 songInfoView 的 View ,其中包含 3 个 UITextFields 和一个 UIButton。我在父 View 中创建一个临时 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];

最佳答案

嗯,我自己想通了。事实证明(我认为)屏幕键盘(连同它的附件 View )有它自己的窗口。因此,在 songInfoView 的 viewDidAppear 方法中,我必须调用

[self.view.window makeKeyAndVisible];

请记住在键盘消失后在用于加载键盘的 View Controller 中再次调用它。希望这对以后的其他人有所帮助。

关于ios - inputAccessoryView 中的 UITextField 不会成为 FirstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19983179/

相关文章:

objective-c - 我是否正在更新绑定(bind)到 NSTableView 的 NSArray?

iphone - XML特殊字符解析

ios - 在 Parse 登录窗口中更改 UIView 会意外移动文本字段

iphone - 在UITableViewController中的viewWillAppear之后未调用didDeselectRowAtIndexPath

ios - 从点击手势识别器获取标签

ios - 后台模式 iOS 中的蓝牙

ios - 关闭应用程序时不处理深度链接 React Native iOS 应用程序

iphone - Obj-C,dyld:找不到符号:_OBJC_CLASS _ $ _ NSUbiquitousKeyValueStore

ios - UITextField 不会正确更改文本颜色

iphone - 如何在iPhone中使用TableView时隐藏键盘?