Objective c NSTextView或NSTextField是否自动调整边界/帧的大小?

Objective c NSTextView或NSTextField是否自动调整边界/帧的大小?,objective-c,macos,nstableview,nstextfield,nstextview,Objective C,Macos,Nstableview,Nstextfield,Nstextview,我试图使用NSTextView或NSTextField来显示我通过textField.stringValue=[dictionary objectForKey:@“info”]添加的文本 问题是我需要文本区域的边界/框架垂直重新调整大小以显示所有文本。文本从几个单词(一行)到一两段不等 当我尝试[textField sizeToFit] 它将整件事情的大小重新调整为一行,这行太长了,荒谬得离谱。我需要它根据当前窗口宽度自动调整其宽度,并根据该宽度调整其高度,以保持显示所有文本 有没有关于尝试什么

我试图使用NSTextView或NSTextField来显示我通过
textField.stringValue=[dictionary objectForKey:@“info”]添加的文本

问题是我需要文本区域的边界/框架垂直重新调整大小以显示所有文本。文本从几个单词(一行)到一两段不等

当我尝试
[textField sizeToFit]

它将整件事情的大小重新调整为一行,这行太长了,荒谬得离谱。我需要它根据当前窗口宽度自动调整其宽度,并根据该宽度调整其高度,以保持显示所有文本

有没有关于尝试什么或方向的想法?这是针对OSX的,没有iOS


(此TextField或TextView将进入基于视图的-NSTableView。因此,我最终尝试让我的表根据该文本框动态调整其行高。)

我需要在当前项目中执行类似的操作。诀窍是在
NSString
上使用
sizeWithFont
方法。这将返回一个
CGSize
,然后您可以使用它构建一个大小正确的框架,以适合您的文本

-(void) setCaption: (NSString*) text size:(CGSize) maxSize
{
    [self.label setText:text];
    UIFont* font=[UIFont systemFontOfSize: [UIFont systemFontSize]]
    [[self label] setFont:font];

    CGSize size=[text sizeWithFont:font constrainedToSize:maxSize];  
    label.frame = CGRectMake(0, 0, size.width, size.height);
}

如果您没有访问该视图的权限,那么您可以将其汇总到一个类帮助器方法中。

这似乎可以做到这一点。我一会儿就去看看!你知道CGSize size=[text-sizeWithFont:font-constrainedToSize:maxSize]的等价物是什么吗会是什么?类似于
CGSize size=[text-sizeWithAttributes:[NSDictionary-dictionary-dictionary-with-objetc:font-forKey:nsfonrattributeneame]]的内容?是的,我相信您需要的是大尺寸的贡品。您解决了这个问题吗?如果您手动控制帧大小-是什么事件触发了这种情况?在Swift中是否仍有这样做的方法?我查阅了文档,Obj C或Swift不再支持“sizeWithFont”。