2011-02-03 57 views
3

我創建了一個Mac應用程序,它使用鏈接到toggleCollapse按鈕的水平調整大小視圖(技術上稱爲BWToolkit調整大小視圖)。在摺疊和展開面板幾次之後,會發生這種情況(請參見圖片)右側的表格視圖應與面板分隔線齊平。任何人都有關於這種情況發生的原因。我仔細地調整了我的對齊方式和錨點,但是看起來這是一個奇怪的問題,導致視圖出錯?(Mac)面板重新大小問題

Table should be flush with panel divider..

編輯:是任何人都沒有這個問題?任何輸入都會有幫助!也許我只需要重新開始?

+0

嗨喬,我明白答案,但這個問題只適用於BWToolkit(框架)SplitViews - 不是普通的NSSplitViews。每次點擊之間留出5秒鐘不會改變它。另外,如果用戶不等待5秒鐘?蘋果會認爲這是一個錯誤,並可能拒絕它的應用程序.. – Zakman411 2011-02-11 00:24:14

+0

@Joe:www.brandonwalkin.com/bwtoolkit – Zakman411 2011-02-11 19:41:18

回答

4

這是BWSplitView本身中的一個已知錯誤,它與視圖動畫和計時器在該視圖中如何交互有關。的細節這裏介紹:

http://bwalkin.lighthouseapp.com/projects/36323/tickets/34-split-view-doesnt-resize-subview-properly-during-a-toggle-uncollapse-after-manual-collapse

基本上,該視圖是動畫之前,autoresizesSubviews沒有設置,而不影響內容,使得視圖可以被摺疊/展開;然後計劃計時器以恢復動畫完成時的autoresizesSubviews屬性。但是(當然)動畫有時可能會比計劃的定時器觸發稍早或稍晚完成;所以在動畫完成之前打開自動調整,導致幾個像素調整大小。正如您可能已經看到的那樣,子視圖傾向於隨着視圖被摺疊並且未塌陷而移動一點。

對此的「完整」修復將在CAAnimation使用回調完成時恢復自動調整,但尚未實現。不過,在該主題中,「Robert Payne」發佈了一個版本的BWSplitView.m,它使用了一種稍微不同的方法 - 視圖大小在合攏前被記錄,並在展開後被恢復。我自己應用了這個補丁(我認爲它一開始不會編譯 - 但它是一個未聲明變量的簡單問題?),並且可以確認它確實解決了問題。

讓我知道您是否想要成功編譯的BWSplitView.m或編譯框架的副本。