0

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

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

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

如果我单击第一行/列进入编辑模式,当我点击选项卡时,字段编辑器将移动到下一列(如我所料)。

任何想法为什么会发生这种情况?以及我如何才能editColumn:row:withEvent:select:正确地拨打电话?

4

2 回答 2

2

内置的制表行为取决于所选择的行,因此只需选择行并编辑列:

[self.tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:rowIndex] byExtendingSelection:NO];
[self.tableView editColumn:0 row:rowIndex withEvent:nil select:YES];
于 2014-03-01T16:31:06.157 回答
1

正如有人在这个答案中所说,AppKit 发行说明说单元格之间的制表符应该自动工作。您的 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:)) {
        ..
    }
}
于 2013-10-03T18:38:57.077 回答