在 NStableViewDelegate 中,我使用工作表窗口开始编辑操作,如下所示:
- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
editEntity = [[contractsAC selectedObjects] objectAtIndex:0];
needsWriteToArrayController = FALSE;
[self beginSheet];
return NO;
}
- (void) beginSheet {
[NSApp beginSheet:contractEditWindow
modalForWindow:mainWindow
modalDelegate:nil
didEndSelector:NULL
contextInfo:nil
];
}
如果我双击表格单元格,事情会按预期运行:工作表出现,我可以编辑其输入。
如果选择了一个表格单元格并且我按下了返回键,事情往往是连线的:工作表出现,但返回键事件被转发到工作表。反过来,工作表的默认保存按钮被触发 - 并使工作表消失。太糟糕了,没有机会编辑;-)
我应该使用 shouldEditTableColumn: 方法中的当前键事件吗?如果是,我该怎么办?