2013-09-23 31 views
4

NSScrollView基於自定義視圖(圖像,複選框和文本標籤)顯示NSTableView。當我滾動 - 我有滯後(錯誤?)重繪行。NSScrollView在滾動後顯示Xcode 5中的問題

正常:Normal

滾動後竊聽:Bugged after scroll

項目(和的.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狀態。

+0

是的,我敢肯定,這只是一個例子。我在我的NSScrollView上看到了像這張圖片上的圖片(只是無法上傳我自己的圖片 - 評分不夠)。 – Disminder

+1

https://dl.dropboxusercontent.com/u/41688771/1.tiff - 正常, – Disminder

+1

https://dl.dropboxusercontent.com/u/41688771/2.tiff - 滾動後 – Disminder

回答

3

我想我有時看到這個問題,當「複製滾動」啓用。嘗試在IB中禁用此選項(屬性檢查器,滾動視圖部分,行爲)。

+2

謝謝!你的回答幫助我找到解決方案。不知道爲什麼,但是當我爲所有NSTableView樹打開「可同時繪製」時,此問題已修復。但是每秒幀數太低,我把它關閉(對於所有樹)。現在 - 好的FPS,沒有這個滯後。 真的不知道發生了什麼,但它有幫助!也許它是Xcode 4 - > Xcode 5轉換問題,也許別的東西.. – Disminder