Macos 如何使用NSTableView的“编辑”事件
在NStableViewDelegate中,我使用工作表窗口开始如下编辑操作:Macos 如何使用NSTableView的“编辑”事件,macos,cocoa,event-handling,nstableview,cocoa-sheet,Macos,Cocoa,Event Handling,Nstableview,Cocoa Sheet,在NStableViewDelegate中,我使用工作表窗口开始如下编辑操作: - (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { editEntity = [[contractsAC selectedObjects] objectAtIndex:0]; needsWriteToArray
- (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:方法中的当前键事件?如果是,我怎么做?您可以尝试使用-performSelector:withObject:afterDelay:延迟工作表演示。添加一个设置和显示工作表的私有方法,并将其延迟为0.0。它将被安排在运行循环的稍后时间,让按键有机会传播。Thx,Jonathan!哦,我问了一个小问题-