2011-11-19 36 views
1

我正在做一個Cocoa應用程序,它有一個NSSavePanel。這個面板的模態的壽命期間,我允許用戶通過在這兩個視圖複選框兩個不同的附件視圖(稱它們視圖A和視圖B),用於該面板之間切換。我在建立雪豹。NSSavePanel,setAccessoryView和動畫

視圖B的高度比視圖A大。當從視圖B切換到視圖A時,可可從保存面板的高度加上視圖B的高度開始,在面板底部繪製視圖A,其空白處爲視圖A的頂部,然後慢慢地將該空間移開,以便視圖A向上滑動。這看起來沒問題。

從視圖A切換到視圖B時,Cocoa在保存面板的最頂部繪製視圖B的組件,以便它們與保存面板自己的組件(文本字段,按鈕等)重疊。然後將視圖B向下滑動到保存面板自己的組件下方。這看起來很醜。

首先,我不確定如何推斷從視圖A到視圖B的過渡動畫的正確方法。其次,我不確定要完成它。我想我可以只有一個輔助視圖,當從基本模式切換到高級模式時,只顯示和隱藏組件,但這看起來有點混亂。

有什麼建議嗎?提前致謝。

回答

1

我發現做這種事最簡單的方法是使用NSTabView,沒有可見的選項卡不繪製背景。 A和B是選項卡視圖的子視圖。使用的複選框NSTabView的子視圖之間切換 - 創建使用的操作方法 - [NSTabView selectTabViewItemAtIndex:]。然後,您不必擔心高度發生變化,Cocoa可以處理過渡。

+0

感謝。這聽起來像個好主意。我不確定這是如何在NSSavePanel中發揮作用的,但是沒有看到任何理由不起作用。如果我的聲譽允許,我會讚揚你。 – membar