Macos NSTableView编辑列:行:withEvent:选择:制表符不正确?

Macos NSTableView编辑列:行:withEvent:选择:制表符不正确?,macos,cocoa,nstableview,Macos,Cocoa,Nstableview,如果我使用以下代码开始编辑NSTableView: [dataTableView editColumn: 0 row: 0 withEvent: nil select: YES]; 表中的第一个行/列组合现在处于编辑模式。但是,如果我有多个列,并且我点击了tab按钮,则编辑器不会切换到下一列。相反,存在编辑模式 如果单击第一行/列进入编辑模式,当我单

如果我使用以下代码开始编辑
NSTableView

    [dataTableView editColumn: 0
                          row: 0
                    withEvent: nil
                       select: YES];
表中的第一个行/列组合现在处于编辑模式。但是,如果我有多个列,并且我点击了tab按钮,则编辑器不会切换到下一列。相反,存在编辑模式

如果单击第一行/列进入编辑模式,当我单击tab时,字段编辑器将移动到下一列(正如我所期望的那样)

你知道为什么会这样吗?以及如何调用
editColumn:row:withEvent:select:
以正确地进行制表?

正如有人在中所说,单元格之间的制表应该自动工作。您的tableview委托可能未实现此方法:

- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
如果要自定义选项卡行为,需要使控制器成为文本视图的代理,然后实现:

- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector {
    if (aSelector == @selector(insertTab:)) {
        ..
    } else if (aSelector == @selector(insertBacktab:)) {
        ..
    }
}
正如有人在中所说,研究人员说,细胞之间的标签应该自动工作。您的tableview委托可能未实现此方法:

- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
如果要自定义选项卡行为,需要使控制器成为文本视图的代理,然后实现:

- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector {
    if (aSelector == @selector(insertTab:)) {
        ..
    } else if (aSelector == @selector(insertBacktab:)) {
        ..
    }
}

内置的选项卡行为取决于所选的行,因此只需在编辑列的同时选择行:

[self.tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:rowIndex] byExtendingSelection:NO];
[self.tableView editColumn:0 row:rowIndex withEvent:nil select:YES];

内置的选项卡行为取决于所选的行,因此只需在编辑列的同时选择行:

[self.tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:rowIndex] byExtendingSelection:NO];
[self.tableView editColumn:0 row:rowIndex withEvent:nil select:YES];

此链接可以帮助您解决问题此链接可以帮助您解决问题