我有 NSTextField 定义了左、右和顶部约束 (没有底部约束集) 。如果内容无法容纳,我需要 NSTextField 增长,如果还有未使用的空间,我需要减小大小。
现在我有:如果 NSTextField 有多行文本或太多内容,它会自动以奇怪的行为扩展,而且 NSTextField 不会在窗口调整大小时减小自己的大小。
我还没有找到任何用 Swift 编写的简单解决方案来解决这个问题(我有很多这样的带有约束的标签),在 iOS 上,一切都在使用通常的文本标签和约束。
我为这个问题创建了一个简单的项目,你可以看到这个问题:[Download Text.zip]
我找到但未使用的解决方案:
最佳答案
根据 Mac OS X Release Notes(NSTextField 内在内容大小改进部分),当 NSTextField 的高度改变时,这是一个已知的错误,但宽度保持不变。我们有两种修复方法:
maximumNumberOfLines
指定为一个有意义的值。这对我们来说不是一个好方法,因为我们不知道实际的行数,也不想计算它。 preferredMaxLayoutWidth
设置为实际值。我以这样的代码结束:代码:
override func viewDidLayout() {
super.viewDidLayout()
textField.preferredMaxLayoutWidth = textField.frame.width
}
关于macos - NSTextField 可调整大小以适应内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32846953/