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];
此链接可以帮助您解决问题此链接可以帮助您解决问题