我有一个由我自己的自定义UITableViewCell组成的UITableView,它的子类是CustomCell。我向该单元格添加了一个UITextField,然后一个方法在某些事件上运行(从文本字段)。
当此方法运行时,我需要访问文本字段是其子视图的CustomCell。
所以我想,如何访问文本字段的父视图( CustomCell)?
我已经尝试过了,获得文本字段,方法的发送者,然后从那里获得它的superview。
CustomTextField *textField = sender;
CustomCell *cell = (CustomCell *)[textField superview];但是这失败了,当我试图访问我手机的一个属性时,应用程序崩溃了,我在控制台中得到了这个信息:[UIView myLabel]: unrecognized selector sent to instance。(myLabel是我试图在单元格上访问的属性。)
为什么这不起作用,或者有其他方法可以访问该单元?
发布于 2012-11-22 04:16:19
您不应该将视图添加为UITableViewCell的直接子视图。相反,您应该将它们添加为单元格contentView的子视图。如果您在xib中布局您的单元,Interface Builder将自动为您处理此问题。因此,一般来说,您不应该期望单元格是文本字段的直接superview。
我会用以下两种方式之一来处理:
CustomTextField提供了一个引用其包含的CustomCell的弱属性。然后,您可以向文本字段请求其单元格。如果您正在使用xib,请将该属性设置为IBOutlet,并将其挂接到xib中。如果在代码中创建单元格,请在创建单元格和文本字段时在代码中设置该属性。CustomCell祖先。https://stackoverflow.com/questions/13501202
复制相似问题