cocoa - NSTextField 中的 setStringValue 总是会改变高度

标签 cocoa constraints newline nstextfield

我在 View 中有一个 NSTextField,其中布局完全由约束控制,并且 translatesAutoresizingMaskIntoConstraints 为“否”。我尝试使用 setStringValue 来更改内容,如下所示:

[[self textfield] setStringValue:@"1\n2\n3\n"];

然后高度改为4行,这不是我想要的。我需要一个只能显示一行的 NSTextField,但我仍然可以使用向上和向下箭头键进入不同的行。就像使用 option+enter 在 NSTextField 中插入换行符一样。

我也尝试保持高度:

NSRect originalFrame = [[self textfield] frame];
[[self textfield] setStringValue:@"1\n2\n3\n"];
NSRect newFrame = [[self textfield] frame];
newFrame.size.height = originalFrame.size.height;
[[self textfield] setFrame:newFrame];

这不起作用。我检查了intrinsicContentSize,它返回(宽度=-1,高度=73)。我可以为 NSTextField 设置什么,以便高度只有一行,例如 22?

最佳答案

发生这种情况是因为您已经设置了相对于 View 的文本字段的自动布局。因此,只需通过单击高度复选框来固定文本字段的高度,如下所示:- enter image description here

关于cocoa - NSTextField 中的 setStringValue 总是会改变高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497076/

相关文章:

cocoa - 新的 iOS9/OSX10.11 NSNumberFormatter Style 枚举值是什么意思?

ios - Xcode 不允许 View 保持水平居中

c# - 什么时候值类型/引用类型约束在 C# 中有用?

bash - 如果文件末尾没有换行符,如何使用 `while read` (Bash) 读取文件的最后一行?

string - Haskell 字符串中的换行符?

javascript - 为所有浏览器创建零宽度换行点

xml - [NSXMLNode stringValue] 的最大长度

iphone - 在不使用 Interface Builder 的情况下指定 CocoaTouch 控件坐标和大小

objective-c - 通过 Objective C 访问 Kindle 内容

ios - UIScrollView 中的 UIView 尊重一些约束,但不尊重其他约束