Внутри 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
];
}
Если дважды щелкнуть ячейку таблицы, все будет работать так, как ожидалось: появится лист, и я могу редактировать его входные данные.
Если выбрана ячейка таблицы, и я нажимаю клавишу возврата, то, как правило, происходит связывание: появляется лист, но событие клавиши возврата перенаправляется на лист. В свою очередь, кнопка SAVE листа по умолчанию срабатывает - и заставляет лист исчезнуть. Жаль, нет возможности редактировать; -)
Должен ли я использовать текущее ключевое событие внутри метода mustEditTableColumn:? Если да, то как я мог?