自定义UITableViewCell中的UITextField委托

时间:2014-11-11 03:56:40

标签: ios objective-c uitableview uitextfield

我的故事板中有一个名为YesNoTableViewCell的自定义单元格原型。在那个单元格中,我有UITextField

我希望在我的自定义单元格类中使用UITextField的委托方法

这是我的代码:

myController的

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
    static NSString *CellIdentifier = @"YesNoTableViewCell";
    YesNoTableViewCell *cell = [tableView
                                dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil){
      cell = [[YesNoTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                       reuseIdentifier:CellIdentifier];
    }

    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
    return cell;
  }

YesNoTableViewCell.m

@interface YesNoTableViewCell : UITableViewCell <UITextFieldDelegate>

@property (weak, nonatomic) IBOutlet UITextField *yesNoInput;

@end

YesNoTableViewCell.h

#import "YesNoTableViewCell.h"

@implementation YesNoTableViewCell

@synthesize yesNoInput = _yesNoInput;

- (id)initWithStyle:(UITableViewCellStyle)style
    reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
      _yesNoInput.delegate = self;
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];
}

但意识到这从未打过:

  

(ID)initWithStyle:(UITableViewCellStyle)风格           reuseIdentifier:(NSString *)reuseIdentifier

因为:

  

YesNoTableViewCell * cell = [tableView   dequeueReusableCellWithIdentifier:CellIdentifier];

永远不会返回nil。

对此有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在实施

时,它永远不会返回单元格nil
if (cell == nil){
  cell = [[YesNoTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                   reuseIdentifier:CellIdentifier];
}

所以只需删除此代码