我在使用UITableView和UITableViewCell子类时遇到了一些问题。
我有一个带有三行的UITableView,在UIViewController中作为模型视图控制器呈现,就像电子邮件编写器一样。第1行表示收件人,第2行表示主题,第3行表示电子邮件正文。对于每一行,我都有一个自定义的UITableView子类。
在我的viewDidLoad方法中,我得到了MessageAddressCell,MessageEditableSubjectCell和MessageEditableBodyCell。
- (void) viewDidLoad {
_toCell = [(MessageAddressCell *)[self getMessageToCell] retain];
_subjectCell = [(MessageEditableSubjectCell *)[self getMessageSubjectCell] retain];
_editableBodyCell = [(MessageEditableBodyCell *)[self getMessageEditableBodyCell] retain];
}
在视图控制器中,我定义了普通的表视图数据源/委托方法。
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 3;
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row) {
case 0: return _toCell;
case 1: return _subjectCell;
case 2: return _editableBodyCell;
default: return nil;
}
}
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"viewController tableView:didSelectRowAtIndexPath: entered method.");
}
我有方法'tableView:willSelectRowAtIndexPath:'返回传入的indexPath。
当我在主题表视图单元格和主体表视图单元格之间点击时,我从未看到输入单元格的日志或执行的断点。 (为该方法设置断点。)
在tableView中返回我的自定义UITableView单元格之前是否需要设置一些属性:cellForRowAtIndexPath:?
MessageAddressCell和MessageEditableSubjectCell都有一个UITextField成为第一个响应者。 MessageEditableBodyCell有一个WebKitHTMLEditor类型的实例,其中包含UIToolbar和UIWebView。