我正在尝试使用NSTextView或NSTextField来显示我通过textField.stringValue = [dictionary objectForKey:@"info"];
添加的文字
问题是我需要文本区域的边界/框架垂直重新调整大小以显示所有文本。文本从几个单词(1行)到一个或两个段落不等。
当我尝试[textField sizeToFit];
它将整个事物重新调整为一条线,这条线太荒谬(并且不在视线范围内)。我需要它根据当前窗口宽度自动重新调整其宽度,并根据重新调整其高度来显示所有文本。
有关尝试或指导的任何想法?这适用于OSX而不是iOS。
(此TextField或TextView将进入基于视图 - NSTableView。所以我最终试图让我的表根据该文本框动态调整行高。 )
答案 0 :(得分:0)
我需要在我当前的项目中做类似的事情。诀窍是在sizeWithFont
上使用NSString
方法。这将返回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);
}
如果您无权访问该视图,则可以将其转换为类助手方法。