【问题标题】:NSScrollView incorrect content sizeNSScrollView 内容大小不正确
【发布时间】:2010-11-19 23:55:21
【问题描述】:

我有一个 NSScrollView,它是自定义 NSView 子类的父级。子类使用 NSScrollView 的 contentSize 方法来布局其子视图。

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

是否应该将此报告为错误,有什么好的解决方案吗?我可以在布局期间使用肮脏的方式进行检查,看看它是否是第一次调用该方法,然后从内容大小中减去 15px,但如果有更好的东西,将不胜感激。

【问题讨论】:

    标签: objective-c cocoa nsview nsscrollview


    【解决方案1】:

    我刚刚遇到了一个类似的问题,我解决它的方法是观察滚动视图的内容视图(在你的情况下是自定义 NSView)上的通知 NSViewFrameDidChangeNotification。

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

    【讨论】:

      【解决方案2】:

      您何时检查内容大小?它是在您的视图从 nib 文件实例化时发生的,还是在 nib 完全取消归档后发生的?

      我可能会从-viewDidMoveToWindow:-awakeFromNib 调用您的布局方法

      【讨论】:

      • 我从 -awakeFromNib 调用它
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-09
        • 2012-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多