Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何使用NSTableView的“编辑”事件_Macos_Cocoa_Event Handling_Nstableview_Cocoa Sheet - Fatal编程技术网

Macos 如何使用NSTableView的“编辑”事件

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

在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:方法中的当前键事件?如果是,我怎么做?

您可以尝试使用-performSelector:withObject:afterDelay:延迟工作表演示。添加一个设置和显示工作表的私有方法,并将其延迟为0.0。它将被安排在运行循环的稍后时间,让按键有机会传播。

Thx,Jonathan!哦,我问了一个小问题-