【发布时间】:2012-04-02 14:00:31
【问题描述】:
我有一个非常简单的 RootView Controller ->Detail View Controller,用于显示核心数据对象列表并在 DetailViewController 中显示所选对象的详细信息。 DetailViewController 是一个带有自定义 UITableViewCell 的 UITableView,它有一个 UITextField 来允许用户编辑。 我能够显示表格,能够编辑文本字段等等。但是,我不确定如何在用户选择“完成”按钮或在“取消”按钮操作时取消更改后实际更新管理对象。 我知道我可以通过使用 EditViewController 来实现这一点,它可用于一次编辑一个属性。但是,我对可以在 DetailViewController 中支持内联编辑的解决方案感兴趣。任何建议都会非常有帮助。
谢谢,
自定义 UITableView 单元格代码
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
_textField = [[UITextField alloc] initWithFrame:CGRectZero];
[_textField setTextAlignment:UITextAlignmentLeft];
[_textField setReturnKeyType:UIReturnKeyDone];
[_textField setClearButtonMode:UITextFieldViewModeWhileEditing];
[_textField setDelegate:self];
[[self contentView] addSubview:_textField];
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
-(void) layoutSubviews {
[super layoutSubviews];
CGRect contentRect = [self.contentView bounds];
// In this example we will never be editing, but this illustrates the appropriate pattern
if ([self isEditing]) {
self.textLabel.frame = CGRectZero;
self.textField.frame = CGRectMake(contentRect.origin.x + kCellLeftOffset, kCellTopOffset, contentRect.size.width - kCellLeftOffset, kCellHeight);
}
else {
CGRect frame = CGRectMake(contentRect.origin.x + kCellLeftOffset, kCellTopOffset, 90, kCellHeight);
CGRect textFrame = CGRectMake(frame.origin.x + frame.size.width + kCellLeftOffset, kCellTopOffset, 180, kCellHeight);
self.textLabel.frame = frame;
self.textField.frame = textFrame;
}
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
if (!editing)
[_textField resignFirstResponder];
}
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField {
return [self isEditing];
}
【问题讨论】:
标签: ios core-data uitableview uitextfield