在cellForRowAtIndexPath的单元格中设置UITextField占位符

时间:2014-02-08 00:27:11

标签: ios iphone objective-c uitableview

我有一个带自定义单元格的UITableView。在单元格内部,我有一个带有一些占位符文本的UITextField。我想从cellForRowAtIndexPath设置占位符,但是当我尝试设置它时,占位符只是说(null)。另外,我想将占位符格式化为“Period(单元格在tableView中的数字)”所以对于最靠近tableView顶部的单元格,它会说“Period 1”,从顶部开始的第二个会说“第2期”。我无法弄清楚如何编号或单元格打印为空的原因。这是代码 -

在自定义单元格中 -

NSString *rowString = [NSString stringWithFormat:@"Period %@", self.rowNumber];
self.classText = [[UITextField alloc] init];
self.classText.delegate = self;
self.classText.placeholder = rowString;
self.classText.frame = CGRectMake(14, 3, 320, 40);
self.classText.keyboardAppearance = UIKeyboardAppearanceDark;
self.classText.font = [UIFont fontWithName:@"HelveticaNeue" size:17];
//[self.classText addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
[self addSubview:self.classText];

在cellForRowAtIndex路径中 -

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    SchoolCell *cell = nil;
    static NSString *AutoCompleteRowIdentifier = @"AutoCompleteRowIdentifier";
    cell = [tableView dequeueReusableCellWithIdentifier:AutoCompleteRowIdentifier];
    if (cell == nil) {
        cell = [[SchoolCell alloc]
                initWithStyle:UITableViewCellStyleDefault reuseIdentifier:AutoCompleteRowIdentifier];
    }
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.rowNumber = @"test";

    return cell;
}

1 个答案:

答案 0 :(得分:0)

在自定义单元格中放置这些初始化classText的代码行?在初始化classText之后,您可能正在cellForRowAtIndex方法中设置rowNumber。创建一个接受rowNumber作为参数的自定义init方法,或者在rowString中创建一个方法,稍后可以在设置rowNumber之后从cellForRowAtIndex调用该方法,并将classText初始化代码放入其中。