NSAttributedStringの描画サイズを取得する

.NET Frameworkで言うところの,System.Drawing.Graphics.MeasureStringに相当するモノを探してたんだけど…。

boundingRectWithSize:options:で取得できるらしい,というところまでは分かったんだけど,これなぜか10.4以降でのみサポート。
単にsizeをやっただけだと横幅指定できないので,LineBreakStyleとか指定した場合に高さがどれだけになるか分からない。

(たかが文字列の描画サイズが取得できないだけで)10.4以降に対象を絞るか,10.3以前(といってもたぶん10.3.9だけサポートということにはなると思うけど)NSLayoutManagerを使ってちまちまやるか,という選択になれば,仕方なく後者にせざるを得ないところ。

CoreDataとかWebKitとかもそうなんだけど,MacOSの場合,Windowsと違って,良さげな機能は最新バージョンでしかサポートされてなくて,簡単に手を出せないのがつらいよなぁ。CoreDataを使うなら(そんなところを10.4以降と10.3以前と分けてコーディングなんてできないから)10.3以前は完全に切り捨てないといかんからね。

.NET Framework 2.0はWindows 2000でも動く,ってあたりはAppleもMicrosoftを見習って欲しい。OSの新機能(128bitの暗号化とか)がInternet Explorerに含まれてリリースされるというのは見習うべきかどうかよく分かんないけど。