У меня есть небольшая проблема с NSTableView. Когда я увеличиваю высоту строки в таблице, текст в ней выровненный наверху строки, но я хочу выровняться, это вертикально центрировалось!
Кто-либо может предложить меня какой-либо способ сделать это??
Спасибо,
Miraaj
Это простое решение кода, которое показывает подкласс, который вы можете использовать для среднего выравнивания 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
Эта запись в блоге показывает альтернативное решение, которое также хорошо работает.