我在这里拉毛。我在xib上创建了一个NSTextField,它的内部调整大小调整为它的stringValue。
如果我以编程方式创建一个textField:
_textfield = [[NSTextField alloc] initWithFrame:CGRectZero];
_textfield.translatesAutoresizingMaskIntoConstraints = NO;
_textfield.alignment = NSCenterTextAlignment;
_textfield.drawsBackground = NO;
[_textfield setBordered:NO];
_textfiled.stringValue = @"Test"
它的intrinsicContentSize总是(width=-1, height=16)
我尝试过调用invalidateIntrinsicContentSize,但无济于事......
如何让NSTextField的intrinsicContentSize工作?我必须做一些与xib不同的事情,我无法弄清楚是什么。
答案 0 :(得分:10)
好的,终于想通了......
[_textfield setEditable:NO]
就是这样。我想,对于可编辑的文本字段,必须对文本字段宽度有明确的约束。哪种方式有意义,想象一下编辑一个文本字段,它会随着每次按键不断地水平增长......不是理想的用户界面。
答案 1 :(得分:1)
如果确实需要可编辑的文本字段,请确保NSTextField的宽度约束设置为视图的最小宽度。