gpt4 book ai didi

cocoa - 为什么当我输入字符时,我的 NSTextField 的内在内容大小没有改变?

转载 作者:行者123 更新时间:2023-12-03 16:57:10 25 4
gpt4 key购买 nike

我正在尝试实现一个自定义的 NSTextField,当文本添加到 NSTextField 时,它可以水平调整大小(不换行文本)。内容压缩阻力优先级属性应该能够帮助解决上述问题(我已将其设置为 1000),但它实际上没有任何效果。

这让我想到了问题的标题:我在自定义 NSTextField 的重写 keyUp() 方法中调用 intrinsicContentSize 但它显示 intrinsicContentSize 没有改变 - 我非常确定,要使内容抗压缩性发挥作用,需要改变 intrinsicContentSize

编辑

正如 Ken Thomas 在下面指出的那样,NSTextField 没有固有宽度,因此我不应该期望它会随着我输入更多字符而发生变化。下面是我添加的代码以使其更改:

override var intrinsicContentSize:NSSize{
return NSMakeSize(self.attributedStringValue.size.width + 20, 20)
}

override func textDidChange(notification: NSNotification) {
super.textDidChange(notification)
self.invalidateIntrinsicContentSize()
}

最佳答案

除非您尝试更改默认行为,否则可编辑文本字段没有固有宽度。即textField.intrinsicContentSize.width == NSViewNoInstrinsicMetric 。这是因为当文本字段可编辑时,其内容不是内在的,而是外在的。

关于cocoa - 为什么当我输入字符时,我的 NSTextField 的内在内容大小没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28746790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com