博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取UITableViewCell中UITextField的值方法总结
阅读量:7003 次
发布时间:2019-06-27

本文共 2811 字,大约阅读时间需要 9 分钟。

UITableViewCell的contentView中的UITextField的值获取有几种方法,本人简单总结一下。

1.  获取UITextField所以Cell的NSIndexPath,知道了NSIndexPath就知道了这个UITextField是干什么的了。

可以在

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  {  //get cell  UITableViewCell *cell = [UITableViewCell ][[textField superview] superview];  NSIndexPath *indexPath = [tableView indexPathForCell:cell];  }

- (void)textFieldDidEndEditing:(UITextField *)textField  {      //get cell      UITableViewCell *cell  = (UITableViewCell *)[[textField superview] superview];      NSIndexPath *indexPath = [tableView indexPathForCell:cell];  }  

中得知道UITextField中text是哪一个数据结构的值,前一个是实时的,后一个是失去焦点时一次性的。

 

2。第二种方法与上面第一个有点类似也是实时的,来自:

- (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;      }  }

转自 http://blog.csdn.net/favormm/article/details/7380160

 
你可能感兴趣的文章