iOS7上tableview单元格中的文本字段崩溃
Posted
技术标签:
【中文标题】iOS7上tableview单元格中的文本字段崩溃【英文标题】:Textfield in tableview cell crashes on iOS7 【发布时间】:2013-12-10 10:37:41 【问题描述】:我的代码在 ios6 上运行良好,但在 iOS7 中崩溃。
我将文本字段与表格视图单元格文本字段进行比较。
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
DLog(@"-> %@", textField.text);
PhotoViewCustomCell *cell = (PhotoViewCustomCell*)[[textField superview] superview];
NSIndexPath *indexPath = [tblPhotoDetail indexPathForCell:cell];
//PhotoViewCustomCell *cell = (PhotoViewCustomCell *)[tblPhotoDetail cellForRowAtIndexPath:indexPath];
PhotoInformation *objPhotoInfo = [selectedPhotos objectAtIndex:indexPath.row];
if ([textField isEqual:cell.mytextfield])
=========>crashing in this line
do something
else
do something
错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCellScrollView mytextfield]: unrecognized selector sent to instance 0xdc119a0'
【问题讨论】:
【参考方案1】:添加额外的 superview 调用以获取您的单元格。看起来你正在隐藏 UITableViewCellScrollView,它在 contentView 上方的层次结构中
PhotoViewCustomCell *cell = (PhotoViewCustomCell*)[[[textField superview] superview] superview];
【讨论】:
【参考方案2】:Accepted Answer 中的代码不是更安全的代码,也不能用于iOS 6
。我宁愿建议您使用此代码。 :
UIView *view = [textField superview];
while (![view isKindOfClass:[PhotoViewCustomCell class]])
view = [view superview];
PhotoViewCustomCell *cell = (PhotoViewCustomCell *)view;
【讨论】:
以上是关于iOS7上tableview单元格中的文本字段崩溃的主要内容,如果未能解决你的问题,请参考以下文章
尝试快速从数组中删除时,不应删除 tableview 单元格中的最后一个单元格
点击保存按钮并存储在字典中时获取表格视图单元格中的文本字段?