我想做的事情在固定寬度的盒子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