我一直在嘗試使用preferredMaxLayoutWidth
自動佈局多行NSTextField
。我無法弄清楚爲什麼這不起作用。多行NSTextField不工作
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
let textField = NSTextField()
textField.cell!.usesSingleLineMode = false
textField.cell!.wraps = true
textField.cell!.lineBreakMode = .byCharWrapping
view.addSubview(textField)
textField.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
textField.topAnchor.constraintEqual(to: view.topAnchor),
textField.leadingAnchor.constraintEqual(to: view.leadingAnchor),
textField.widthAnchor.constraintEqual(toConstant: 20)
])
textField.preferredMaxLayoutWidth = 20
textField.stringValue = "abcdefghijklmnopqrstuvwxyz"
view.needsLayout = true
view.layoutSubtreeIfNeeded()
print("Intrinsic content size: \(textField.intrinsicContentSize)")
print("Fitting size: \(textField.fittingSize)")
}
}
此打印:
內在內容大小:(-1.0,21.0)
接頭尺寸:(20.0,21.0)
(21.0是大小單行)。
什麼是不工作?看起來你已經將寬度設置爲每行只顯示一個字符。 –
@ l'l l寬度限制爲20點。我期望'NSTextField'返回一個足夠大的高度來容納所有文本。 – fumoboy007
那麼爲什麼不爲'heightAnchor'使用約束呢? –