对于我来说NSSegmentedControl
,我用它来做显示一个栏来控制一个NSTableView
。我设置了代码以编程方式控制大小:
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];
}
这工作,由一个小问题发生。
一开始(有一段)它看起来像这样:
当我更改值时,右侧会被略微剪裁。
然后回到一个片段:
约束如下:
我对剪辑感到非常困惑(可能是因为几个像素太大了),但我不知道如何修复它,或者有没有更好的方法来获得均匀间隔的单元格?