如果我使用以下代码开始编辑NSTableView
:
[dataTableView editColumn: 0
row: 0
withEvent: nil
select: YES];
表格中的第一个行/列组合现在处于编辑模式。但是,如果我有多个列并且按下选项卡按钮,则编辑器不会切换到下一列。相反,存在编辑模式。
如果我点击第一行/列进入编辑模式,当我点击标签时,字段编辑器会移动到下一列(正如我所料)。
为什么会发生这种情况的任何想法?我如何能够正确地拨打editColumn:row:withEvent:select:
来拨打标签?
答案 0 :(得分:2)
内置的标签行为取决于所选的行,因此只需选择行并编辑列:
[self.tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:rowIndex] byExtendingSelection:NO];
[self.tableView editColumn:0 row:rowIndex withEvent:nil select:YES];
答案 1 :(得分:1)
正如有人在this answer中所说,AppKit Release Notes表示单元格之间的标签应该自动生效。您的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:)) {
..
}
}