0

これはiOSで常に呼び出されているのを目にします。これにより、クールなCore Abimationの一部をMacに移植することが非常に難しくなります。次の目的がわかりません...

-(void)willMoveToSuperview:(UIView *)newSuperview {

TwUI (Twitter の Mac GUI フレームワーク) のTUIViewクラスには、サブクラス- (void)willMoveToSuperview:(TUIView *)newSuperview {}の新しいインスタンスを作成するメソッドである、類似/同一のメソッドがあります。@interface TUIView : TUIResponderこれは、? の新しいインスタンスを作成するための一般的な呼び出しであると信じています。これは、私が最もNSResponder理解していない Cocoa パターンの 1 つであることは認めます。新しいビュー、またはビューの階層を変更する可能性があります..しかし、繰り返しますが、よくわかりません。

とにかく… AppKit/UIKit 間の View Controller 構造の根本的な違いにより、Mac 側に単純な/同等の呼び出しがありますか、それともこれは別の獣ですか?

4

1 に答える 1

3

-[NSView viewWillMoveToSuperview:]カスタムNSViewサブクラスでオーバーライドできます。これは、ビュー階層内の位置が変更されようとしているときにクラスに通知するための手段にすぎません。名前が示す以外に深い意味はありませんが、もちろん、さまざまな目的に使用できます。これはデリゲートまたはViewControllerのメソッドではありませんが、必要に応じてそのような委任を自分で実装できます。

また、コードがビュー階層内でビューを移動している場合は、そのようなメソッドが呼び出されるときでもある、直前に必要なことを直接実行できます。

于 2012-04-13T00:36:15.663 に答える