好了,我们开始吧:
由于@Lefteris,他与存储当前指数的想法。由于我无法将索引存储到tag
属性中,因此我决定存储活动的indexPath
和另外的活动textField
。 (我知道,到UITextField
参考就足够了,但我需要它的其他的东西)
首先我加入了这两个属性:
@property (nonatomic, strong) NSIndexPath *activeIndexPath;
@property (nonatomic, strong) UITextField *activeTextField;
然后我实现textFieldDidBeginEditing:
和UITextFieldDelegate
textFieldDidEndEditing:
。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
NSIndexPath *indexPath = (NSIndexPath*)[self.tableView indexPathForCell:(UITableViewCell*)[[textField superview] superview]];
self.activeTextField = textField;
self.activeIndexPath = indexPath;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
NSString *input = textField.text;
//assuming values from input textfield into corresponding properties
[self assumeInput:input withIndexPath:self.activeIndexPath];
self.activeTextField = nil;
self.activeTextField = nil;
}
在textFieldDidEndEditing:
我通过使用该方法[self assumeInput:input withIndexPath:self.activeIndexPath];
存储的值到我的性能(如self.firstName
,self.lastName
,等等...)。
在我的saveAction
- 方法我存储当前活动的TextField
的值。
- (IBAction)saveButtonClicked:(UIBarButtonItem *)sender
{
//assuming input from active field (didEndEditing _not_ called right now!)
[self assumeInput:self.activeTextField.text withIndexPath:self.activeIndexPath];
//test output
NSLog(@"firstName: %@", self.firstName);
NSLog(@"lastName: %@", self.lastName);
NSLog(@"email: %@", self.email);
...
}
......就是这样!
希望它有帮助!感谢@Lefteris的投入。
Best, Chris
我不能使用'tag'属性。我目前正在使用它从单元格中检索文本字段('[cell viewForTag:...]')。任何其他建议? – Chris 2012-07-25 07:32:52
感谢您的输入。存储索引的好主意,但我已经改进了一点点。 – Chris 2012-07-25 09:53:07
我看不出有什么理由不能通过标签访问textview,即使它位于单元格中。只需使用唯一的标签号码,并且一旦获得对单元格的引用,请执行UITextView * myTextView =(UITextView *)[单元格。contentView viewWithTag:XXX]; – Lefteris 2012-07-25 14:16:06