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

Cocoa -[NSTextField intrinsicContentSize]始终具有未定义的宽度,cocoa,autolayout,nstextfield,Cocoa,Autolayout,Nstextfield,我在这里吹毛求疵。我在xib上创建了一个NSTextField,该字段的intrinsicContentSize调整为其stringValue 如果我像这样以编程方式创建文本字段: _textfield = [[NSTextField alloc] initWithFrame:CGRectZero]; _textfield.translatesAutoresizingMaskIntoConstraints = NO; _textfield.alignment = NSCe

我在这里吹毛求疵。我在xib上创建了一个NSTextField,该字段的intrinsicContentSize调整为其stringValue

如果我像这样以编程方式创建文本字段:

    _textfield = [[NSTextField alloc] initWithFrame:CGRectZero];
    _textfield.translatesAutoresizingMaskIntoConstraints = NO;
    _textfield.alignment = NSCenterTextAlignment;
    _textfield.drawsBackground = NO;
    [_textfield setBordered:NO];
    _textfiled.stringValue = @"Test"
它的intrinsicContentSize总是
(宽度=-1,高度=16)

我已尝试调用invalidateIntrinsicContentSize,但无效


如何使NSTextField的intrinsicContentSize正常工作??我一定是在做一些与xib不同的事情,我只是不知道是什么。

好的,终于想出来了

[\u textfield set可编辑:否]


就这样。我猜对于可编辑的文本字段,必须对文本字段宽度有明确的约束。这是有意义的,想象一下编辑一个文本字段,它会随着每次击键而不断水平增长。。。这不是一个理想的UI。

如果您确实需要一个可编辑的文本字段,请确保NSTextField的宽度约束设置为视图应具有的最小宽度。

是!经过这么多的努力,将
editable
设置为
false
成功了。非常感谢!