Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

-[NSTextField intrinsicContentSize] always has undefined width

I'm pulling hairs here. I have an NSTextField created on a xib that has an intrinsicContentSize adjusted to it's stringValue.

If I create a textField programmatically like so:

    _textfield = [[NSTextField alloc] initWithFrame:CGRectZero];
    _textfield.translatesAutoresizingMaskIntoConstraints = NO;
    _textfield.alignment = NSCenterTextAlignment;
    _textfield.drawsBackground = NO;
    [_textfield setBordered:NO];
    _textfiled.stringValue = @"Test"

It's intrinsicContentSize is always (width=-1, height=16)

I've tried calling invalidateIntrinsicContentSize but to no avail…

How does one get NSTextField's intrinsicContentSize to work?? I must be doing something different than the one from the xib, I just can't figure out what.

like image 566
pfandrade Avatar asked Dec 28 '13 00:12

pfandrade


Video Answer


1 Answers

OK, finally figured it out…

[_textfield setEditable:NO]

That's it. I guess that with an editable textfield one must have an explicit constraint for the textfield width. Which kind of makes sense, imagine editing a textfield and it would constantly grow horizontally with every keystroke... not an ideal UI.

like image 198
pfandrade Avatar answered Oct 21 '22 08:10

pfandrade