Reputation: 2419
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.
Upvotes: 6
Views: 1818
Reputation: 278
If you do need an editable textfield, make sure the NSTextField has a width constraint set to the minimum width the view should be.
Upvotes: 1
Reputation: 2419
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.
Upvotes: 10