Я создал настольное приложение в 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;
}