4

NSScrollViewNSTableViewカスタム ビュー (画像、チェックボックス、テキスト ラベル) に基づいて表示します。スクロールすると、行の再描画にラグ(バグ?)があります。

普通:普通

スクロール後にバグ:スクロール後にバグった

プロジェクト (および .xib ファイル) が Xcode 4 から Xcode 5 形式に更新されました。このバグはその後に発生したと思いますが、よくわかりません。

それを修正する方法はありますか?

NSTableViewDataSource、NSTableViewDelegate プロトコルの実現:

- (NSInteger) numberOfRowsInTableView: (NSTableView *) aTableView {
return [arrayOfObjects count];
}

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    CMListItem *currentObject = [arrayOfObjects objectAtIndex: row];
    NSString *currentName = [currentObject name];
    BOOL currentState = [currentObject state];
    NSImage *currentImage = [currentObject getArtwork];
    NSString *identifier = [tableColumn identifier];

    if ([identifier isEqualToString:@"MainCell"]) {
        CMTableCellView *cellView = [tableView makeViewWithIdentifier: identifier owner: self];
        cellView.textField.stringValue = currentName;
        cellView.button.state = currentState;
        cellView.imageView.image = currentImage;
        return cellView;
    }
    return nil;
}

NSScrollView変更されていません。私自身のテーブル セル ビュー - のサブクラスでNSTableCellView、いくつかのアウトレットが追加されています。

更新:これは私を助けました:Can Draw ConcurrentlyすべてNSTableViewOn状態に設定してから、状態に変えOffます。

4

1 に答える 1

3

「Copy On Scroll」が有効になっていると、この問題が時々見られると思います。IB でこのオプションを無効にしてみてください (属性インスペクター、スクロールビュー セクション、動作)。

于 2013-09-24T07:46:07.130 に答える