NSTableview выбор подергивания - PullRequest
1 голос
/ 11 января 2012

Я создал настольное приложение в 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...