2010-11-19 164 views
1

我有一个NSScrollView,它是自定义NSView子类的父级。该子类使用NSScrollView的contentSize方法来布置其子视图。NSScrollView内容大小不正确

问题是,首次启动时,NSScrollView报告contentSize错误。它报告的大小比它应该是15px多(滚动条的宽度)。所以在我看来,它没有考虑到滚动宽度而返回contentSize;不过,只要我调整滚动视图的框架(通过调整大小等),内容大小会正确报告。这似乎只是初次发布时的一个问题。

这应该报告为一个错误,并且有没有什么好的解决方案呢?我可以使用在布局过程中执行检查的肮脏方法来查看它是否是第一次调用该方法,然后从内容大小中减去15px,但是如果有更好的东西,那将不胜感激。

回答

0

你什么时候检查内容大小?当你的视图是从nib文件实例化的时候,还是在nib被完全解压后?

我可能会做的是从-viewDidMoveToWindow:-awakeFromNib

+0

我从-awakeFromNib调用它 – indragie 2010-11-20 02:28:23

2

我只是碰到了类似的问题,我解决了它是观察上滚动视图的内容视图通知NSViewFrameDidChangeNotification的方式来调用你的布局方法(在你的案例自定义NSView)。

当滚动条从滚动视图中添加/删除时,触发此通知,此时您可以重新定位视图的内容。

+0

谢谢收到! – dmitrynikolaev 2013-06-06 13:59:57

0

您是否使用该选项来自动隐藏/显示滚动条?