在装有 iOS 6 GM 的 iPad 上。我有 6 个 UITextFields、3 个 UITextViews 和一个触发弹出框/操作表的 UIButton。
当我选择其中一个 UITextFields 或 UITextViews 时,键盘会弹出并出现光标,但我无法输入文本。如果我按下 UIButton 以显示弹出框,然后在其外部点击以将其关闭并返回 UITextFields 或 UITextViews,它们就会起作用。
我有 UITextxxxx.delegate = self; 为所有人设置。在我的 .h 文件中的 xib、UITextFieldDelegate 和 UITextViewDelegate 中选中了“已启用”和“已启用用户交互”以及:
- (BOOL)disablesAutomaticKeyboardDismissal {
return NO;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
return YES;
}
- (IBAction)textFieldReturn:(id)sender {
[sender resignFirstResponder];
}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
if (textView == notestextView){
[notestextView becomeFirstResponder];
}
if (textView == notestextViewTwo){
[notestextViewTwo becomeFirstResponder];
}
if (textView == notestextViewThree){
[notestextViewThree becomeFirstResponder];
}
return YES;
}
- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
return YES;
}
我什至尝试 [xxxxxxx becomeFirstResponder]; 在 viewDidLoad 中。这会在运行时弹出键盘并将光标放在字段中,但我仍然无法输入它,直到我点击 UIButton 以显示弹出框。
任何人都知道为什么我不能在字段中输入以及为什么调用弹出框“修复它”?
更新 9/18:我在我的应用程序中推送了一个新视图,该视图只有一个带有文本字段和文本视图的视图。代表已全部成立。相同的行为。键盘和光标出现,但没有打字。这排除了 popovercontroller 搞砸的事情。
我强烈开始认为这是一个 iOS 6 错误。这与我在 iOS 4 和 5 上我的应用程序的 iPhone 版本中的视图几乎相同,而且我从来没有遇到过问题。iPhone 和 iPad 版本之间的唯一区别是图像选择器的呈现方式。您必须为 iPad 使用弹出框。这就是为什么我认为 popover 代表与它有关。
在 iOS 6 中实现 UITextFields 和 UITextViews 之间有什么我不知道的根本区别吗?似乎不太可能。
如果它有助于我的应用程序像这样流动:
带有 10 个按钮的主视图
- 每个按钮通过导航控制器推送一个表格视图
- tableviews 推送详细视图 - textfields 和 textviews 表现出上述行为
- tableview 也有一个添加按钮,用于推动模态视图以添加新项目 - 文本字段和文本视图表现出上述行为