您的位置:首页 > 产品设计 > UI/UE

获取UITableView每行中不同的UITextField输入的内容

2015-08-13 18:12 483 查看
转自:http://blog.sina.com.cn/s/blog_9ca91e4a0100xlvu.html

获取UITableView每行中不同的UITextField输入的内容 
此博文包含视频 (2012-02-20
11:05:47)转载▼
标签: 杂谈
分类: iPhone
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSInteger row = [indexPath row];
    
    static NSString  *CellIdentifier =
@"CellIdentifier";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (cell ==
nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }
    
    cell.textLabel.text = [_passwordArray objectAtIndex:row];
    
    CGRect textFieldRect = CGRectMake(0.0,
0.0f, 215.0f,
31.0f);
    UITextField *theTextField = [[UITextField alloc] initWithFrame:textFieldRect];
    theTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    theTextField.returnKeyType = UIReturnKeyDone;
    theTextField.secureTextEntry = YES;
    theTextField.clearButtonMode = YES;
    theTextField.tag = row;
    theTextField.delegate = self;
    
    //此方法为关键方法
    [theTextField addTarget:self action:@selector(textFieldWithText:) forControlEvents:UIControlEventEditingChanged];
    
    switch (row) {
        case
0:
            theTextField.placeholder = @"请输入旧密码";
            break;
        case
1:
            theTextField.placeholder = @"请输入新密码";
            break;
        case
2:
            theTextField.placeholder = @"请再次输入新密码";
            break;
        default:
            break;
    }
    
    cell.accessoryView = theTextField;
    [theTextField release];
    
    return cell;
}

- (void)textFieldWithText:(UITextField *)textField
{
    switch (textField.tag) {
        case
0:
            self.theOldPassword = textField.text;
            break;
        case
1:
            self.theNewPassword = textField.text;
            break;
        case
2:
            self.theTwiceNewPassword = textField.text;
            break;
        default:
            break;
    }
}
//个人觉得上面的写法会有reuse问题,可以使用的时候尝试下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: