问题标签 [nsstackview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2486 浏览

objective-c - 自动布局:当高度动态改变时,NSStackView 不会调整父视图的大小

类似的问题:如何根据使用 Autolayout 布局的子视图的大小调整父视图的大小

我有一个 NSStackView 加载DisclosureViewControllers (NSViewController 子类),就像在 Apple Example InfoBarStackView中一样。

Apple 的示例 InfoBarStackView

那些可以扩展和缩回任意高度的视图。我希望包含 的父视图NSStackView根据NSStackView. 在有效的 Apple 示例中。

然而,不幸的是,Apple 正在调整 NSWindow 的大小,而我正在使用CCNStatusItem( CCNStatusItem Github ),这是一个附加到 Apple 菜单栏中状态项的视图。该窗口NSStackView在加载时会根据内容调整大小,但在内容更改时不会调整大小。

加载视图后的 CCNStatusItem 窗口

当我展开一个部分时,内容会溢出并在视图的底部边缘被剪裁。

带有扩展 DisclosureViewController 的 CCNStatusItem 窗口

我经历了所有的限制并试图准确地重现它,但无法让它发挥作用。在 Apple 示例中,他们以编程方式添加所有内容,而我在 Interface Builder 中添加了 NSStackView。

以下是 NSStackView 的约束: 在此处输入图像描述

我的问题是:我在 Interface Builder 中有哪些约束(具有哪些优先级),以便父视图(窗口)根据堆栈视图的内容动态调整大小?我是否必须调用视图的某些方法才能使其工作?

如果我错过了提供一些必要的信息,请告诉我。

更新

接受的答案是正确的方法。这是结果。我的 CCNStatusItem 的分叉版本可以在https://github.com/julianvogels/CCNStatusItem.git找到

滑动现在有效!

0 投票
0 回答
88 浏览

objective-c - 寻找顶部联系人页面中使用的控件(NSStackView?)

我对 Cocoa 很陌生,我正在寻找联系人应用程序“主”视图中使用的控件/视图。特别是下面看到的滚动行为,滚动时会出现一行:

滚动行为

我一直在试验 NSStackView 和 NSTableView。我相信他们正在使用一个 NSStackView 中间有一个 NSTableView ......

到目前为止没有运气,任何获得与联系人应用程序类似外观的提示或指示将不胜感激。我正在使用故事板(如果这改变了任何东西)。

0 投票
2 回答
856 浏览

macos - 在 NSStackView 中拖动视图以重新排列顺序

是否可以通过拖动子视图来更改NSStackView中的视图顺序,就像我们在 NSTableView 中所做的那样?

0 投票
1 回答
1388 浏览

cocoa - NSStackView 中的隐藏视图不隐藏?

我创建了一个包含两个 NSView 子类的垂直 NSStackView(它们只是绘制背景颜色的 NSView)。我将堆栈视图设置为分离隐藏视图。我已将其中一个视图设置为隐藏。

两个视图都不会隐藏在堆栈视图中。

为了确保我没有发疯,我还设置了两个相同的 NSView 并排在一起,隐藏了一个。果然,一个人躲起来了。

堆栈视图的分布设置为按比例填充(这似乎无关紧要)。

在 IB 中,这种行为似乎是正确的;其中一个视图隐藏。

我一定在这里遗漏了一些非常明显的东西,对吧?

在此处输入图像描述

如果相关,则 NSView 子类:#import "ViewWithBackgroundColor.h"

0 投票
2 回答
2573 浏览

swift - NSScrollView 包含 NSStackView。为什么 NSStackView 项目从底部到顶部?

包含 NSStackView 的 NSScrollView。NSStackView 的项目将在运行时添加。新的 NSStackView 的项目是从下到上的,但我希望它们是从上到下的。 在此处输入图像描述 在此处输入图像描述

main.storyboard

在此处输入图像描述

视图控制器

复选框按钮类

0 投票
1 回答
944 浏览

objective-c - NSStackView 和内容拥抱优先级

NSStackView与常规相比,有 2 个额外的优先级NSView,即clippingResistancePriorityhuggingPriority.文档提供了一些合理的解释它们的用途和作用。

但是 4 个优先事项有点过头了。

现在,在上述文档中,他们提到:

堆栈视图没有内在的内容大小,也没有可配置的内容压缩阻力。在堆栈视图上调用该setContentCompressionResistancePriority:forOrientation:方法无效。

然而,contentHuggingPriority被留在了阴影中。似乎NSStackView对这个也没有反应——或者至少我没能做到。

有人可以确认或反驳这一点吗?

0 投票
2 回答
324 浏览

swift - 以编程方式将 InterfaceBuilder 创建的视图添加到 NSStackView 将它们压缩到 0 高度

我一直在尝试将我在 Interface Builder 中创建的自定义视图添加到NSStackView,但失败得很惨。

这是我的视图控制器。它目前除了从 NIB 初始化视图之外什么都不做:

这是我尝试将新创建的视图添加到堆栈视图的方式(这发生在应用程序委托中):

当我在将创建视图的框架添加到堆栈视图之前打印它时,它具有正确的大小。如果我之后打印它,它会被压缩到零高度。我怀疑有一些我不理解的自动调整大小的魔法正在发生,但我无法修复它。

有趣的是,如果我将ServiceControlViewController' 视图设置为 ' NSButton,则它会被正确添加并且不会被压缩到零高度。它只发生在Custom Views我创建的。

PS:我的 InterfaceBuilder 创建的视图只包含一堆按钮和一个标签:

在此处输入图像描述

PPS:我添加了一个 MWE

0 投票
2 回答
1491 浏览

macos - 如何使按钮在具有固定高度的 NSStackView 中垂直填充

在此处输入图像描述

上面显示的 NSStackView 具有顶部/前导/尾随约束,与其父视图成比例的高度,并设置为顶部对齐和相等填充。我想让按钮垂直拉伸以填充其堆栈视图的高度。如何使用 NSStackView 进行配置?还是我必须在按钮上添加约束?

0 投票
0 回答
182 浏览

cocoa - 可重用 NSView 从 Storyboard 添加到 NSStackView

NSViewController在故事板中有一个定义,其中包含一个包含各种标签和一个按钮的视图。它们使用自动布局对齐。 在此处输入图像描述

我想把它用作 UI 原型,这样我就可以生成很多这些并将它们添加到一个垂直的位置NSStackView,就像表格行一样。

我有一个NSViewController这样定义的子类:

在我拥有NSStackView并想要添加这些行的控制器中,我已经尝试过这些行,但我很困惑这应该如何发生。这不起作用,但我不确定如何继续:

关于如何解决这个问题的任何建议?

0 投票
1 回答
120 浏览

objective-c - 用 NSArray 和 NSMutableArray 填充 NSStackView

我有一个 Stack 来填充一组视图。

它运作良好。如果我想用可变数组替换这个数组怎么办?

我为“动态”堆栈视图尝试了此代码,最后将可变数组转换为简单数组,但不起作用:

在控制台中,如果我打印可变数组,我有:

我该如何解决?