如何使用nstableview的“编辑”活动
-
14-11-2019 - |
题
在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
];
}
.
如果我双击表格单元格,事情就像预期一样:表格出现,我能够编辑其输入。
如果选择了表格单元格,并且我按返回键,事情往往有线:出现纸张,但返回键事件转发到工作表。反过来,纸张的默认保存按钮被解雇 - 并使纸张消失。太糟糕了,没有机会编辑; - )
我应该在panceDitableColumn:方法中消耗当前的关键事件吗?如果是,我怎么能呢?
解决方案
您可以尝试使用-performSelector:withObject:afterDelay:
推迟表演示文稿。添加一个私有方法,该方法设置并显示工作表,并为其延迟生成的延迟。它将稍后在运行循环上略微安排,使按键成为传播的机会。
不隶属于 StackOverflow