CTFramesetterSuggestFrameSizeWithConstraints()をtableview:heightOfRow:で使用しようとしていますが、NSTableViewのセルの属性を使用して属性付きの文字列を入力しています。問題は、予想される14.0の倍数([tableView rowHeight]に対応)ではなく、13.0の倍数(1行の場合は13.0、2行の場合は26.0など)で値を返すことです。
NSDictionary * attributes = [[[[[tableView tableColumnWithIdentifier: @"Message"] dataCell] attributedStringValue]
attributesAtIndex: 0 effectiveRange: NULL] retain];
NSAttributedString * attributedMessage = [[NSAttributedString alloc] initWithString: message attributes: attributes];
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attributedMessage);
CFRange range;
CGSize size = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0, [attributedMessage length]), NULL, CGSizeMake([column width], CGFLOAT_MAX), &range);
CFRelease(framesetter);
[attributedMessage release];
return size.height;
何かアドバイスをいただければ幸いです。現在、1行あたり1ポイント(13.0)の増加をハードコーディングすることでハッキングしていますが、これを正しい方法で実行したいと思います。