いくつNSTableView
かのテキスト列があります。デフォルトではdataCell
、これらの列の は Apple のNSTextFieldCell
クラスのインスタンスであり、あらゆる種類の素晴らしいことを行いますが、セルの上部に揃えてテキストを描画し、テキストをセルの垂直方向の中央に配置したいと考えています。
NSTextFieldCell
テキストを垂直方向に中央揃えするために使用できる内部フラグがあり、美しく機能します。ただし、これは内部フラグであるため、その使用は Apple によって認可されておらず、将来のリリースで警告なしに単に消える可能性があります。シンプルで効果的なので、現在この内部フラグを使用しています。Apple は明らかにこの機能の実装に時間を費やしてきたので、私はそれを再実装するという考えは好きではありません。
そう; 私の質問はこれです: Apple の NStextFieldCell とまったく同じように動作するものを実装する正しい方法は何ですか?
記録のために、これが私の現在の「解決策」です:
@interface NSTextFieldCell (MyCategories)
- (void)setVerticalCentering:(BOOL)centerVertical;
@end
@implementation NSTextFieldCell (MyCategories)
- (void)setVerticalCentering:(BOOL)centerVertical
{
@try { _cFlags.vCentered = centerVertical ? 1 : 0; }
@catch(...) { NSLog(@"*** unable to set vertical centering"); }
}
@end
次のように使用します。
[[myTableColumn dataCell] setVerticalCentering:YES];