我想在固定宽度的框中绘制一些 NSAttributedStrings,但是在计算绘制时它们将占用的正确高度时遇到了麻烦。到目前为止,我已经尝试过:
调用
- (NSSize) size
,但结果是无用的(为此目的),因为它们会给出字符串所需的任何宽度。- (void)drawWithRect:(NSRect)rect options:(NSStringDrawingOptions)options
使用形状为我想要的宽度和选项的矩形进行调用NSStringDrawingUsesLineFragmentOrigin
,就像我在绘图中使用的那样。结果……难以理解;当然不是我要找的。(正如在许多地方指出的那样,包括这个Cocoa-Dev 线程)。创建一个临时的 NSTextView 并做: 当我查询 tmpView 的框架时,宽度仍然是所需的,并且高度通常是正确的......直到我得到更长的字符串,当它通常是所需大小的一半时。(似乎没有达到最大尺寸:一帧将是 273.0 高(大约 300 太短),另一帧将是 478.0(只有 60-ish 太短))。
[[tmpView textStorage] setAttributedString:aString];
[tmpView setHorizontallyResizable:NO];
[tmpView sizeToFit];
如果有其他人管理过这一点,我将不胜感激。