从子视图中删除视图不会调用willRemoveSubview

时间:2012-12-13 01:11:27

标签: cocoa nsview subview addsubview superview

我有一个管理视图控制器,当用户选择一个菜单项时,它可以切换一组先前分配的子视图控制器。

当我切换视图控制器时,我将管理视图控制器的视图连接到子视图控制器中的视图。

[mvc.view addSubview:subvc.view];

这一切似乎都很好。

但是,从视图层次结构中删除子视图控制器的视图时(例如,在应用程序中切换页面时):

[subvc.view removeFromSuperview];

  • 自定义视图类中的willRemoveSubview方法永远不会触发。我已经确认,当我进行removeFromSuperview调用时,我在自定义视图类的实例上调用它。

我的自定义视图类中的其他方法会触发,例如viewWillMoveToWindow。

NSView参考文档说应该调用这个方法吗?

有谁能说明为什么这不起作用?

我正在运行10.8.2使用Xcode 4.5.2编译10.7

由于

达伦。

1 个答案:

答案 0 :(得分:1)

顾名思义,

willRemoveSubview:在超级视图上调用,而不是被删除的子视图。