追記(2008/10/06): サンプルプロジェクトを作った.エントリーと異なる部分もあるが許してください.
@interface TransitionView : NSTabView
…
@end
@implementation TransitionView
…
- (void)selectTabViewItem:(NSTabViewItem *)tabViewItem {
[transition captureViewForInitialView:self]; //切換え前の画像を開始画像として
[super selectTabViewItem:tabViewItem]; //切り替えて
[transition captureViewForFinalView:self]; //切換え後の画像を終了画像として
NSView *finalContentView = [tabViewItem view]; //終了Viewを
[finalContentView setHidden:YES]; //非表示
[transition start]; //アニメーション開始
[finalContentView setHidden:NO]; //表示
[self setNeedsDisplay:YES]; //ってこと.
}
…
@end
transitionが表すクラスについてはまた後日.
ちなみにこいつを呼び出すときはこうなる.
int pos = [transitionView indexOfTabViewItem:[transitionView selectedTabViewItem]];
pos = (pos==0)?1:0; //いま0なら1を,1なら0を呼ぶようにする.
[transitionView selectTabViewItemAtIndex:pos];
結局,"selectTabViewItemAtIndex"は"selectTabViewItem"を呼び出すので
上記TransitionViewのメソッドが呼ばれるわけです.
0 件のコメント:
コメントを投稿