2012-12-13 55 views
0

我有一個管理視圖控制器,用於在用戶選擇菜單項時切換一組先前分配的子視圖控制器。從子視圖中刪除視圖不會調用willRemoveSubview

當我切換到視圖控制器時,我將管理視圖控制器的視圖連接到子視圖控制器中的視圖。

[mvc.view addSubview:subvc.view];

這一切似乎工作正常。

然而,從與所述視圖層次結構中除去該子視圖控制器的視圖時(例如..切換應用程序中的網頁時):

[subvc.view removeFromSuperview];

  • 自定義視圖類中的willRemoveSubview方法從不觸發。我已經確認,當我進行removeFromSuperview調用時,我在自定義視圖類的一個實例上調用它。

儘管如此,我的自定義視圖類中的其他方法也會觸發,如viewWillMoveToWindow。

NSView的參考文檔說這個方法應該被調用?

任何人都可以提出爲什麼這不工作?

我在10.8.2運行在Xcode編譯10.7 4.5.2

感謝

達倫。

+0

您是否覆蓋了修改視圖層次結構的任何方法,例如-removeFromSuperview,-addSubview等? – paulmelnikow

回答

1

willRemoveSubview:,顧名思義,是在超級視圖上調用的,而不是子視圖被刪除。

+0

謝謝,我完全誤解了Apple文檔。我現在把該方法放在超級視圖的客戶NSView類中,並且一切正常。 –