我在mac os x 10.6中创建了一个基于桌面的应用程序。该应用使用NSTableview
列出文件。我用鼠标点击表格选择。使用的代码是
[tableView selectRowIndexes:ind byExtendingSelection:NO];
ind
是indexset
。
当我使用鼠标点击逐个选择文件时,每当我点击表格的行时,我会发现一个小的抽搐效果。任何人都可以建议一种避免抽搐效果的方法。
这是代码
- (void) clickedIt:(id)sender{
id indexsett = [[NSIndexSet alloc] initWithIndexSet: [subviewTableView selectedRowIndexes]];
if([indexsett count] <=1)
{
if ([self isValidDelegateForSelector:@selector(tableView:shouldClickedRow:)])
{
[delegate tableView:subviewTableView shouldClickedRow:(int)[subviewTableView selectedRow]];
}
}else
{
[indexsett enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
NSLog(@"tracing index:%ld",idx);
[delegate tableView:subviewTableView shouldClickedRow:(int)idx];
}];
}
}
- (BOOL) tableView:(NSTableView *) tableView shouldClickedRow:(int) row
{
if(row != -1) {
if([ind count]>0) {
if([ind containsIndex:row]) {
[ind removeIndex:row];
[tableView selectRowIndexes:ind byExtendingSelection:NO];
}else {
[ind addIndex:row];
[tableView selectRowIndexes:ind byExtendingSelection:NO];
}
}else {
[ind addIndex:row];
[tableView selectRowIndexes:ind byExtendingSelection:NO];
}
return YES;
}else{
[tableView selectRowIndexes:ind byExtendingSelection:NO];
}
return YES;
}