NSTableView编辑列:行:带事件:选择:未正确制表



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

    [dataTableView editColumn: 0
                          row: 0
                    withEvent: nil
                       select: YES];

表中的第一行/列组合现在处于编辑模式。但是,如果我有多个列,并且我点击了选项卡按钮,编辑器不会切换到下一列。相反,编辑模式是存在的。

若我点击第一行/列进入编辑模式,当我点击选项卡时,字段编辑器会移动到下一列(正如我所期望的)。

你知道为什么会发生这种事吗?我怎样才能让我的呼叫editColumn:row:withEvent:select:正确制表?

内置的选项卡行为取决于所选的行,因此只需选择行并编辑列即可:

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

正如有人在回答中所说,AppKit发行说明中说,单元格之间的选项卡应该自动工作。您的表视图委托可能没有实现此方法:

- (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:)) {
        ..
    }
}

最新更新