вертикально выравнивая текст в строке NSTableView

У меня есть небольшая проблема с NSTableView. Когда я увеличиваю высоту строки в таблице, текст в ней выровненный наверху строки, но я хочу выровняться, это вертикально центрировалось!

Кто-либо может предложить меня какой-либо способ сделать это??

Спасибо,

Miraaj

15
задан Devarshi 20 January 2010 в 16:42
поделиться

1 ответ

Это простое решение кода, которое показывает подкласс, который вы можете использовать для среднего выравнивания TextFieldCell.

Заголовок

#import <Cocoa/Cocoa.h>


@interface MiddleAlignedTextFieldCell : NSTextFieldCell {

}

@end

Код

@implementation MiddleAlignedTextFieldCell

- (NSRect)titleRectForBounds:(NSRect)theRect {
    NSRect titleFrame = [super titleRectForBounds:theRect];
    NSSize titleSize = [[self attributedStringValue] size];
    titleFrame.origin.y = theRect.origin.y - .5 + (theRect.size.height - titleSize.height) / 2.0;
    return titleFrame;
}

- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
    NSRect titleRect = [self titleRectForBounds:cellFrame];
    [[self attributedStringValue] drawInRect:titleRect];
}

@end

Эта запись в блоге показывает альтернативное решение, которое также хорошо работает.

21
ответ дан 1 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: