问题标签 [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.
macos - 在 NSTableView 中嵌入 NSStackView 作为 NSTableCellView
我目前正在开发一个待办事项类型应用程序的原型。我有一个包含用户任务的表。我想做的只是向用户提供相关的任务信息。但要编辑其他信息,他们会点击披露按钮来展开单元格。
我在想两种可能的方法来处理这个问题:
- 扩展 NSTableViewCell
- 使用 NSStackView 作为每个单元格的内容
如果使用 NSTableViewCell,我可能会有两个 NSView 来表示单元格(顶部和底部)。
如果使用 NSStackView,我将有一种简单的方法来封装这些部件。
我想另一种方法也可以完全用 NSStackView 构建它。
更困难的方面似乎与细胞的实际膨胀/塌陷有关。
我知道这可以被视为征求意见的问题类型。我从未构建过 MacOS 应用程序。因此,我正在寻找一些关于解决问题的最佳方法的指导,而不是在注定不会有成效的方法上旋转我的车轮。
谢谢!
swift - 在 Swift 中动画一组 NSView 以在 NSStackView 中一个接一个出现的最佳方式是什么?
我可以使用以下代码向 NSStackView 添加多个 NSTextField:
optionsStackView.addView(newOption, in: .center)
我遇到的问题是让每个 NSTextField (newOption) 在视图出现时一个接一个地出现 - 在使用 NSAnimationContext.runAnimationGroup { (context) in } 时不是一次都出现
每次 for 循环运行时,我基本上需要延迟半秒,以便为所有 NSTextField 一个接一个地显示一个 NSTextField,但我不知道该怎么做。我看着使用DispatchQueue.main.asyncAfter(deadline: .now() + 0.5)
,但不能完全弄清楚在没有所有东西同时出现的情况下完成这项工作的代码......
我确定我在这里遗漏了一些简单的东西。
有人可以帮忙吗?
swift - 如何根据 Mac OS 中的窗口大小隐藏子 NSView?
我正在用 swift 编写一个 MacOS 应用程序。窗口中的主要布局如下:
NSStackView 有一个侧边栏(NSTableView)和一个 NSView。我想要达到的目标在这里列出:
- 更改窗口大小时,侧边栏的宽度是固定的。
- 当窗口宽度小于
WIDTH_THRESHOLD
时,sideBar 被隐藏。
问题是_
- 对于 Target 1,sideBar 和 NSView 的约束如下,但它不起作用,sideBar 的宽度仍然发生变化。
- 对于目标 2,该项目具有 a
NSWindowController
和 aNSViewController
。我可以在 中收听窗口大小NSWindowController
,但我不知道如何将此消息传输NSViewController
到隐藏侧边栏。
请注意,NSStackView 具有类似的属性,Hugging Priority
在尺寸检查器中,我可以通过设置这些属性来实现目标吗(如下图)?Clipping Resistance Priority
Visibility Priorities
objective-c - NSStackView,当其中一个子视图被隐藏时填充视图
我有一个具有这种行为的垂直 NSStackView。它有两个子视图,其中一个位于堆栈视图的顶部,具有固定的高度。然后,还有另一个视图将覆盖视图中的剩余空间。类似于下图。我当前的代码已经显示如下视图:
我想要一种行为,当我隐藏顶视图或 ViewA 时,ViewB 占据整个堆栈视图的高度。像这张图片:
我正在以编程方式执行此操作,但是当我将 ViewA 设置为隐藏时,ViewB 不会占用整个可用空间。将 ViewA 空间留在那里。
我当前的代码已经像第一张图片一样显示了 UI,它是:
我不确定在隐藏 ViewA 时需要添加什么以允许 ViewB 增大大小。另外,在我隐藏viewB之后,我调用了该layoutSubtreeIfNeeded
方法。