我在我的应用程序中遇到了问题,我在其中展示了NSTableView。此表视图显示整个NSTableColumn的NSButtonCell为DataCell的行列表。在尝试了很多方法来找到延迟的根本原因之后,我放弃并创建了一个简单的小项目,只有NSTableView显示包含“Hi”文本的行列表。我很惊讶地发现此应用程序中存在延迟。
尝试使用案例:我使用Cmd和鼠标单击选择了4行。然后,我只使用Command从之前选择的行列表中选择了一行。后来的行动需要2-4秒才能反映出来。 10.8.5 OSX中为4秒,10.11.6 OSX中为2秒
复制此处的代码供您参考 -
@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
请帮助我解决这个滞后问题或建议采用其他方法立即采取行动。
答案 0 :(得分:0)
取消选择行所需的时间等于我们的系统首选项中配置的双击速度。
我已经提交了一个苹果虫并且知道了这一点。在我的系统中,双击间隔设置为长时间,因此表视图中的取消选择也需要相当长的时间。
非常感谢苹果,也想分享这个,因为你不会浪费时间调试它。