【问题标题】:Embedding Custom View with controls in NSScrollView在 NSScrollView 中嵌入带有控件的自定义视图
【发布时间】:2015-04-24 15:59:24
【问题描述】:

我正在尝试创建一个包含多个控件的可滚动视图。为此,我将自定义视图控件包装在 NSScrollView 中,并将自定义视图的大小设置为与滚动视图大致相同。

但是,如果我在 Interface Builder 的自定义视图中放置其他控件,它们在运行时不会出现在自定义视图中。这是为什么呢?

如果我将一个按钮放在未包含在 NSScrollView 中的自定义视图中,它可以工作,但我希望自定义视图可以滚动,以防窗口高度太小而无法显示所有控件。

【问题讨论】:

    标签: macos cocoa interface-builder nsscrollview


    【解决方案1】:

    在 Interface Builder 中拖入一个 NSScrollView 后,查看 xib 窗口中的大纲视图。你会看到你现在有一个 Bordered Scroll View,它包含一个 ClipView,然后又包含一个 NSView。

    一个。确保您的自定义视图已作为子视图添加到 NSView。如果您在更高级别添加它们,您将无法获得您想要的行为。

    b.另一种选择是简单地将 NSView 的类更改为您的自定义视图类。选择 BorderedScrollView->ClipView 中的 View,然后单击左起第三个选项卡(在 Xcode 窗口的右上角),您可以在标记为“Class”的字段中输入自定义类名称。

    【讨论】:

    • 谢谢,但这不是与视图层次结构相关的问题,因为这一切都设置正确。我认为这个问题与自动布局有关,但我还没有弄清楚是什么问题。
    • 几乎想通了:自定义视图需要自动布局固定。但是,我收到不一致的自动布局框架的警告,并且自定义视图一直向下滚动。创建自定义视图子类并返回翻转 = true 显然在 IB 中没有任何作用。肯定有办法在 IB 中正确设置,不是吗?
    • 在阅读了这个解决方案后,我基本上已经解决了:stackoverflow.com/questions/29241474/… ... ClipView 需要翻转,而不是文档视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多