Для моего NSSegmentedControl
я использую его, чтобы отображать панель для управления NSTableView
. У меня есть код, настроенный для управления размером программно:Ячейки равного размера в NSSegmentedControl
for (NSInteger i = 1; i <= numberOfSegments; i++) {
CGSize textSize = [[NSString stringWithFormat:@"Workspace %ld", (long)i] sizeWithAttributes:@{NSFontAttributeName: [NSFont systemFontOfSize:13.0f]}];
NSInteger segmentWidth = self.workspaceControl.frame.size.width/numberOfSegments;
if (textSize.width > segmentWidth) {
[self.workspaceControl setLabel:[NSString stringWithFormat:@"%ld", (long)i] forSegment:i - 1];
} else {
[self.workspaceControl setLabel:[NSString stringWithFormat:@"Workspace %ld", (long)i] forSegment:i - 1];
}
[self.workspaceControl setWidth:segmentWidth forSegment:i - 1];
}
Это работает, возникает небольшая проблема.
В начале (с одним сегментом) выглядит следующим образом:
Как изменить значение, правая сторона получает немного обрезано.
а затем обратно в один сегмент:
Ограничения заключаются в следующем:
Im очень озадачен отсечением (возможно, из-за большого количества пикселей в пикселях), но я не знаю, как его исправить, или есть лучший способ получить равномерно распределенные ячейки?