根据字符串的长度更新 NSTextField 的大小

Updating the size of NSTextField with respect to length of the string

我正在尝试更新 NSTextField 的高度 w.r.t 字符串的长度,但如果字符串较轻,最后一部分会被剪切 off.This 是我的代码。

 self.solutionTextView.frame = CGRectMake(self.solutionTextView.frame.origin.x, self.solutionTextView.frame.origin.y, self.solutionTextView.frame.size.width + 25 ,self.solutionTextView.frame.size.height + 25);
//self.solutionTextView.sizeToFit()

我做错了什么?

如果允许 NSTextField 换行字符串,则以下步骤是确定所需字段高度的标准(或通常?或更多可能的方法之一?)方法。假设字段宽度给定:

NSRect frame = [textField frame];

现在让它变得非常高:

NSRect constraintBounds = frame;
constraintBounds.size.height =  10000.0;
[textField setFrame: constraintBounds];

并设置字符串:

[textField  setStringValue:theString];

现在询问自然色尺码:

 NSSize naturalSize =
        [[textField cell] cellSizeForBounds:constraintBounds];

大功告成:

 frame.size = naturalSize;
 [textField setFrame:frame];