【发布时间】:2016-12-20 11:56:54
【问题描述】:
我在显示 NSTableView 的应用程序中遇到了这个问题。这个表格视图显示了以 NSButtonCell 作为整个 NSTableColumn 的 DataCell 的行列表。在尝试了很多方法来找到延迟的根本原因后,我放弃并创建了一个简单的最小项目,只有一个 NSTableView 显示包含“Hi”文本的行列表。我很惊讶地发现这个应用程序中也存在延迟。
用例尝试:我使用 Cmd 和鼠标单击选择了 4 行。然后我从先前选择的行列表中只选择了一行,而不使用命令。后面的动作需要 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
请帮助我解决此延迟问题或建议其他方法以立即执行此操作。
【问题讨论】:
-
你试过没有图片吗?
-
@Willeke 是的。我现在编辑了代码。问题依然存在。
-
您是创建了一个新项目并将一个新的表格视图拖到窗口中,还是从现有项目的副本中删除了其他所有内容?
-
@Willeke .. 我创建了一个新项目,并没有重用我实际项目中的任何内容。如果你有时间,不妨试试,因为它不会花费你超过 10 分钟。
-
我确实尝试过重现该问题,但它可以正常工作。
标签: cocoa nstableview multipleselection