繁体   English   中英

在 NSStackView 中设置 NSButton 大小

[英]Set NSButton size in NSStackView

我使用此代码以编程方式创建按钮

 let button: NSButton = NSButton()
 button.action = #selector(ViewController.eject)
 button.bezelStyle = .texturedSquare                              
 buttons.append(button)
 stackView.addView(buttons[i], in: .leading)
             

问题是这些按钮看起来像这样在此处输入图像描述

我想设置 (x, y) position 和这些按钮的大小。 例如,我想将它们的宽度设置为填充整个空间。 我尝试了多种解决方案:

button.frame = CGRect(x: 0.0,y: 0.0,width: 100.0,height: 100.0)

和 arguments 一起玩,但它们的大小仍然没有改变。 然后我尝试将它们作为SubViews添加到stackView ,但显然它们彼此重叠。 有什么建议吗?

要修复这些按钮,您首先必须修改 storyboard 中的 StackView 元素。 Go 到 storyboard 的菜单并像这样修改在此处输入图像描述

通过“填充”分布,您可以让按钮填充堆栈视图的整个宽度。 使用“间距”,您可以定义每个按钮之间必须有多少空间。

然后你 go 那里

在此处输入图像描述

要给按钮一些空间,只需使用 Edge Insets 值即可。 然后将水平拥抱属性设置为 250。

您要做的最后一件事是将此代码添加到您的 ViewController 文件中。

button.setContentHuggingPriority(NSLayoutConstraint.Priority.init(1), for: .horizontal)
button.translatesAutoresizingMaskIntoConstraints = false

这样,您将按钮的水平 Hugging Propriety 设置为 1。
这是我创建的按钮

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM