Есть ли «правильный» способ заставить NSTextFieldCell рисовать вертикально центрированный текст?

у меня естьNSTableView с несколькими текстовыми столбцами. По умолчаниюdataCell для этих столбцов - пример AppleNSTextFieldCell Класс, который делает все виды замечательных вещей, но он рисует текст, выровненный по верху ячейки, и я хочу, чтобы текст был вертикально центрирован в ячейке.

Есть внутренний флаг вNSTextFieldCell это может быть использовано для вертикального центрирования текста, и это прекрасно работает. Однако, поскольку это внутренний флаг, его использование не санкционировано Apple, и он может просто исчезнуть без предупреждения в будущем выпуске. В настоящее время я использую этот внутренний флаг, потому что он прост и эффективен. Очевидно, что Apple потратила некоторое время на реализацию этой функции, поэтому мне не нравится идея ее повторной реализации.

Так; мой вопрос такой:What is the right way to implement something that behaves exactly like Apple's NStextFieldCell, but draws vertically centered text instead of top-aligned?

Для справки, вот мое текущее «решение»:

@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];

Ответы на вопрос(7)

Ваш ответ на вопрос