- [NSTextField intrinsicContentSize]始终具有未定义的宽度

pfa*_*ade 6 cocoa nstextfield autolayout

我在这里拉毛.我在xib上创建了一个NSTextField,它的内部调整大小调整为它的stringValue.

如果我以编程方式创建textField,如下所示:

    _textfield = [[NSTextField alloc] initWithFrame:CGRectZero];
    _textfield.translatesAutoresizingMaskIntoConstraints = NO;
    _textfield.alignment = NSCenterTextAlignment;
    _textfield.drawsBackground = NO;
    [_textfield setBordered:NO];
    _textfiled.stringValue = @"Test"
Run Code Online (Sandbox Code Playgroud)

它始终是intrinsicContentSize (width=-1, height=16)

我试过调用invalidateIntrinsicContentSize但无济于事......

如何让NSTextField的intrinsicContentSize工作?我必须做一些与xib不同的事情,我无法弄清楚是什么.

pfa*_*ade 10

好的,终于搞清楚了......

[_textfield setEditable:NO]

而已.我想,对于可编辑的文本字段,必须对文本字段宽度有明确的约束.哪种方式有意义,想象一下编辑一个文本字段,它会随着每次按键不断地水平增长......不是理想的用户界面.