在NSTableView中取消选择一行需要时间
问题描述:
我在我的应用程序中遇到了问题,其中显示了NSTableView。此表视图显示了整个NSTableColumn的NSButtonCell为DataCell的行的列表。在尝试了很多方法找到延迟的根本原因之后,我放弃并创建了一个简单的项目,只是让NSTableView显示包含“Hi”文本的行列表。我很惊讶地看到这个应用程序中也存在延迟。在NSTableView中取消选择一行需要时间
使用案例尝试:我用Cmd和鼠标单击选择了4行。然后,我从以前选择的行列表中只选择一行,而不使用命令。后面的行动需要2-4秒才能体现出来。 4秒在10.8.5 OSX和2秒在10.11.6 OSX
这里复制的代码,供大家参考 -
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
[self.tableView setDelegate:self];
[self.tableView setDataSource:self];
[self.tableView setAllowsMultipleSelection:YES];
[self.tableView setAllowsEmptySelection:YES];
}
#pragma mark - Table View -
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
return @"Hi";
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return 10;
}
@end
请帮我解决这个滞后或用其他的方式来做出这个动作提示即时。
答
取消选择行所需的时间等于在我们的系统首选项中配置的双击速度。
我已经提交了一个苹果bug,并知道这一点。在我的系统中,双击间隔设置为很长时间,因此在表格视图中取消选择也需要相当长的时间。
非常感谢苹果,也想分享这个,因为你不会浪费时间调试它。
你尝试没有图像? – Willeke
@Willeke是的。我现在编辑了代码。问题依然存在。 –
您是否创建了新项目并将新的表格视图拖到窗口中,或者是否从现有项目的副本中删除了其他项目? – Willeke