在NSTableView

时间:2016-12-20 11:56:54

标签: cocoa nstableview multipleselection

我在我的应用程序中遇到了问题,我在其中展示了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

请帮助我解决这个滞后问题或建议采用其他方法立即采取行动。

1 个答案:

答案 0 :(得分:0)

取消选择行所需的时间等于我们的系统首选项中配置的双击速度。

我已经提交了一个苹果虫并且知道了这一点。在我的系统中,双击间隔设置为长时间,因此表视图中的取消选择也需要相当长的时间。

非常感谢苹果,也想分享这个,因为你不会浪费时间调试它。