我在单元格上添加UITextField。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
myLoc = [[UITextField alloc] initWithFrame:CGRectMake(35, 10, 250, 40)];
myLoc.adjustsFontSizeToFitWidth = YES;
myLoc.textColor = [UIColor blackColor];
myLoc.textAlignment = UITextAlignmentCenter;
myLoc.placeholder = @"Enter Location";
myLoc.returnKeyType = UIReturnKeyDone;
myLoc.autocorrectionType = UITextAutocapitalizationTypeNone;
myLoc.tag = indexPath.row;
myLoc.delegate = self;
[myLoc setEnabled:YES];
[cell addSubview:myLoc];
return cell;
}
然后在textFieldShouldReturn中,我将从可变字段中的文本字段中写入文本,并存储在nsuserdefaults中。
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[myLoc resignFirstResponder];
[locationArray addObject:textField.text];
locName = [NSUserDefaults standardUserDefaults];
[locName setObject:locationArray forKey:@"textName"];
[locName synchronize];
NSLog(@"Done pressed %@",myLoc.text);
return YES;
}
...但是myLoc.text始终为null
有什么想法吗?
最佳答案
在委托方法中,请勿使用myLoc
引用textField,而应使用作为函数参数提供的实际textField
指针。这实际上应该指向正确的文本字段,因此textField.text应该具有正确的值。
附带说明:您在哪里定义myLoc
?看来您正在尝试在ViewController上设置属性。这样,您将始终覆盖该属性。为此,您根本不需要属性,因此只需在函数范围内像myLoc
一样在本地定义UILabel *myLoc
关于ios - 访问CellForRowAtIndexPath中的UITextField,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10487814/