UITableViewCell 中的 UITextField 在 iPad 上没有键盘,但 iPhone 可以
Posted
技术标签:
【中文标题】UITableViewCell 中的 UITextField 在 iPad 上没有键盘,但 iPhone 可以【英文标题】:UITextField in UITableViewCell no keyboard on iPad but iPhone ok 【发布时间】:2013-07-17 09:24:07 【问题描述】:我有一个 tableView,它有几个表格单元格,其中 TextFields 作为子视图
self.cellFirstName = [[UITableViewCell alloc] initWithFrame:cellRectangle];
self.tfFirstName = [[UITextField alloc] initWithFrame:Field1Frame];
self.tfFirstName.tag = 1;
self.tfFirstName.delegate = self;
self.tfFirstName.placeholder = @"First Name";
[self.cellFirstName addSubview:self.tfFirstName];
...
if(indexPath.section == 0)
cell = self.cellFirstName;
当您在真实 iPad 上触摸 textField 或在 iPad 模拟器上单击 TextField 时,键盘不会弹出。在真实和模拟 iPhone 上都可以找到。
不知何故,我无法做任何事情来使键盘弹出。
如果我将其中一个文本字段设置为第一响应者,则会出现一个键盘,但是当我关闭键盘并点击任何文本字段时 - 什么都没有 - 没有键盘。
单击或触摸文本字段只会将它们变为蓝色。
我什至将 iPhone 故事板复制到 iPad 和 将 targetRuntime 更改为“ios.CocoaTouch.iPad” 结果还是一样。
这是我用来让它工作的技巧:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
if(indexPath.section == 0)
[self.tfFirstName becomeFirstResponder];
if(indexPath.section == 1)
[self.tfLastName becomeFirstResponder];
...
我宁愿了解是什么阻止了键盘弹出。
【问题讨论】:
【参考方案1】:如果您对 iPad
有一些特殊代码,我想您可能已经设置了 tfFirstName.userInteraction = NO;
和/或 tfFirstName.enabled = NO;
或 delegate
方法之一以在设备为 @ 时返回 NO
987654326@。请检查这些。
【讨论】:
感谢您的快速响应,您的建议会不会产生相反的效果(我想要交互,我想要一个键盘),我尝试了所有设置 userIneraction 并启用为 NO 的组合,但没有任何效果。您是否知道导致这种情况的任何 iPad 主义?另外,您指的是哪些委托方法。再次感谢您的快速回复。 你误会了,我说你必须检查是否将交互设置为 NO,因为应该是 YES。 在我之前尝试查找问题时,我确实对这些值进行了 nslog 记录,结果是肯定的,所以问题出在其他地方。 你能分享这个项目让我试试吗? 如果这是我自己的小项目,那么我会,但这是一个客户付钱让我创建的应用程序,当我有时间时,我会尝试用一个简单的项目重新创建条件并与您联系直接。以上是关于UITableViewCell 中的 UITextField 在 iPad 上没有键盘,但 iPhone 可以的主要内容,如果未能解决你的问题,请参考以下文章
从 UIText 字段的用户输入更改 UIView 框架的高度和宽度
如何从 UITextfields UIMenuController 中删除不需要的 UIMenuItems?