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

时间:2013-12-28 00:17:24

标签: cocoa autolayout nstextfield

我在这里拉毛。我在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不同的事情,我无法弄清楚是什么。

2 个答案:

答案 0 :(得分:10)

好的,终于想通了......

[_textfield setEditable:NO]

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

答案 1 :(得分:1)

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