2012-04-12 29 views
0

我在iOS上看到這個叫做ALL THE TIME,它使得很難將一些很酷的Core Abimation的東西移植到Mac上,因爲我無法弄清楚以下是什麼...什麼是Mac的相當於iOS的CALayer「willMoveToSuperview」?

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

TwUI(微博公司的Mac GUI框架)具有在其TUIView類,- (void)willMoveToSuperview:(TUIView *)newSuperview {},這是創建@interface TUIView : TUIResponder子類的新實例的方法的類似/相同的方法。這導致我相信這是一個普遍的呼籲,以創建一個NSResponder?的新實例,我承認這是我瞭解的可可模式之一至少 ......我有點想過它可能是一個調用只是卸載視圖,或者加載一個新的視圖,或者也許改變視圖heirarchy ..但再次,不知道。

不管...在Mac端是否有一個直接的/等價的調用,或者這是一個不同的野獸,由於AppKit/UIKit之間的視圖控制器結構的根本區別?

回答

3

您可以在自定義NSView子類中覆蓋-[NSView viewWillMoveToSuperview:]。這只是當您的類在視圖層次結構中的位置即將更改時才被通知的一種手段。除了它的名字意味着它沒有更深的含義,但是你當然可以利用它來達到各種目的。這不是委託或視圖控制器上的方法,但是如果你願意,你可以自己實現這樣的委託。另外,如果你的代碼是圍繞視圖層次結構移動視圖,那麼它可以直接在它之前直接做任何事情,這也大致是在調用這樣的方法時。