2017-06-14 40 views
0

在此问题(Custom NSView embedded in NSSscrollView)上,当我的自定义视图嵌入在使用IB的NSScrollView中时,我可以在awakeFromNib方法中检测到此操作并执行所需的初始化(我必须设置一些滚动通知)。
我的问题是通过自定义视图添加到NSScrollView从代码,设置滚动视图的documentView属性。在这种情况下,我的自定义视图以任何方式通知(一些NSView方法被调用,我可以覆盖),或者我的视图添加到滚动视图后,我必须显式执行我的初始化?将自定义NSView添加到NSScrollView时的通知

回答

1

滚动视图的documentView是此滚动视图的子视图,并且NSView有许多有用的方法。在章“管理视图层次”:

viewDidMoveToSuperview

时通知认为,它的父已经改变(可能为零)。

viewDidMoveToWindow

通知内容已被添加到一个新的视图层次视图。

当视图被添加到超级视图时,调用viewDidMoveToSuperview。但视图可能已经在视图内(在XIB或代码中),并且这个超视图可以被添加到滚动视图。当视图添加到视图层次结构或从视图层次结构中删除视图时调用viewDidMoveToWindow