我想做的事情在固定宽度的盒子NSAttributedStrings的一些图纸,但我有麻烦的计算得出时,他们会采取了合适的高度,以获得高度NSAttributedString。到目前为止,我已经试过:如何在一个固定的宽度
调用
- (NSSize) size
,但结果是无用的(为了这个目的),因为他们会给任何宽度的字符串的欲望。调用
- (void)drawWithRect:(NSRect)rect options:(NSStringDrawingOptions)options
用矩形切换到我想要的宽度和NSStringDrawingUsesLineFragmentOrigin
在选项中,就像我在绘图中使用的一样。结果很难理解;当然不是我要找的东西。 (正如指出在许多地方,包括this可可-DEV线程)。创建临时NSTextView和做:
[[tmpView textStorage] setAttributedString:aString];
[tmpView setHorizontallyResizable:NO];
[tmpView sizeToFit];
当我查询tmpView的边框,宽度为仍需要,并高度往往是正确的...直到我得到更长的字符串,当它的通常是所需尺寸的一半。 (似乎没有成为一个最大尺寸被击中:一帧将273.0高(约300太短),其他的将是478.0(仅60十岁上下太短))。
我很感激任何指针,如果其他人已经管理了这一点。
此答案已过时。 [格雷厄姆的回答](http://stackoverflow.com/a/2460091/39155)下面是截至2014年的正确方法。 – 2014-08-17 16:47:47