Горизонтально по центру метки в NSTabViewItem
Я создал подкласс NSTabViewItem
так что я могу указать конкретную ширину для элемента представления вкладки, как показано в этом ответе. Это работает хорошо, однако метка для вкладки расположена не по центру, поэтому справа от текста есть дополнительные отступы. Как я могу центрировать текст в пределах границ метки, или как я могу правильно центрировать текст внутри фиксированной ширины NSTabViewItem
?
1 ответ
Решение
Вы можете переопределить функцию "drawLabel:inRect:" и дать соответствующий прямоугольник для рисования здесь. подобно
(void)drawLabel:(BOOL)shouldTruncateLabel
inRect:(NSRect)labelRect{
//find your label size
NSDictionary* attr = [NSDictionary dictionaryWithObjectsAndKeys:
self.tabView.font,NSFontAttributeName,
nil];
NSSize labelSize = [self.label sizeWithAttributes:attr];
//modify your labelRect here.....
labelRect.origin.x += floor((labelRect.size.width - labelSize.width)/2)
labelRect.size.width = labelSize.width;
//call super
[super drawWithFrame:shouldTruncateLabel inRect:labelRect];
}