调用
- (NSSize) size
,但结果无用(对于此目的),因为它们将提供字符串需要的任何宽度。使用一个形状为我想要的宽度和
NSStringDrawingUsesLineFragmentOrigin
选项的矩形调用- (void)drawWithRect:(NSRect)rect options:(NSStringDrawingOptions)options
,与我的绘图完全相同。 结果很难理解; 绝对不是我要寻找的(正如在许多地方指出的那样,包括这个 Cocoa-Dev线程)。创建一个临时NSTextView并执行:
[[tmpView textStorage] setAttributedString:aString];
[tmpView setHorizontallyResizable:NO];
[tmpView sizeToFit];
当我查询tmpView的框架时,宽度仍然符合要求,而高度通常是正确的...直到我遇到较长的字符串时,它通常只有所需大小的一半。 (似乎没有达到最大尺寸:一个框架将高273.0(大约缺少了300),另一个框架将高478.0(仅缺少60左右))。
NSAttributedString
,并且使用NSStringDrawingUsesDeviceMetrics
,那么大小就是CGSizeZero
。因此,在决定如何获取大小之前,似乎必须知道是否有字形... - zekel