我有一个为iOS 5构建的应用程序,我试图直接升级到iOS 7,所以这也可能是iOS 6的问题。
我们在自定义表格视图单元格(从UITableCellView派生的类)中有一个UITextField,但点击它不再在模拟器中调出键盘。一切都已启用,并且已启用用户交互已启用。
以前在iOS 5中运行良好。
我不确定要包含哪些代码,但这里是创建单元格的代码... LoginRegisterTableViewCell只有一个' fieldLabel' (UILabel)和' userText' (的UITextField):
// Login area
static NSString * reuseIdentifier = @"LoginRegisterTableViewCell";
LoginRegisterTableViewCell * cell = (LoginRegisterTableViewCell *)[tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if(cell == nil)
{
// The official Apple way of loading TableViewCell nibs
// http://www.nomadplanet.fr/2011/01/custom-uitableviewcells-loaded-from-xib-howto-debug/
[[NSBundle mainBundle] loadNibNamed:@"LoginRegisterTableViewCell" owner:self options:nil];
cell = formFieldCell;
self.formFieldCell = nil;
}
cell.delegate = self;
cell.userText.tag = [indexPath row];
如果在选择表格单元格时调用[userText becomeFirstResponder],我可以让键盘出现,但这似乎是一种解决方法而不是正确的方法。
答案 0 :(得分:1)
使用表格视图数据源:cellForRowAtIndexPath
NSString *cellReuseIdentifier = @"CellIdentifier";
UINib *nib = [UINib nibWithNibName:@"CustomTableViewCell" bundle:nil];
[_myTableView registerNib:nib forCellReuseIdentifier:cellReuseIdentifier];
CustomTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellReuseIdentifier];
if (!cell)
{
cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellReuseIdentifier];
}
return cell;
使用xib创建的自定义单元格对我有用,如图
所示注意:标记同时创建XIB文件。
并提供像
这样的单元格重用标识符这对我来说非常适用于示例应用程序而没有键盘问题。