sách gpt4 ăn đã đi

objective-c - NSSegmentedControl 颜色

In lại 作者:太空狗 更新时间:2023-10-30 03:33:28 26 4
mua khóa gpt4 giày nike

我想要一个 NSSegmentedControl 的子类,其中各个段的颜色不同。我已经尝试子类化 NSSegmentedControl 并添加以下代码:

- (void)drawRect:(NSRect)dirtyRect
{
NSColor *color = [NSColor redColor];
[color setFill];
NSRectFill(dirtyRect);
[super drawRect:dirtyRect];
}

nhập mô tả hình ảnh ở đây

这看起来很接近,除了 1. 它将整个分段控件着色为相同的颜色,在本例中为红色,以及 2. 边缘有一点颜色溢出。

我还尝试继承 NSSegmentedCell 并添加:

- (void)drawSegment:(NSInteger)segment inFrame:(NSRect)frame withView:(NSView *)controlView
{
NSColor *color;
switch (segment) {
trường hợp 0:
color = [NSColor redColor];
phá vỡ;
trường hợp 1:
color = [NSColor blueColor];
phá vỡ;
case 2:
color = [NSColor greenColor];
phá vỡ;
case 3:
color = [NSColor orangeColor];
phá vỡ;
mặc định:
phá vỡ;
}
[color setFill];
NSRectFill(frame);
[super drawSegment:segment inFrame:frame withView:controlView];
}

nhập mô tả hình ảnh ở đây

这更好,因为各个部分都显示了独特的颜色,但我几乎不认为这是可以接受的。我希望整个片段都用适合该片段的颜色填充,如果它具有第一个屏幕截图中的渐变和阴影,那就太好了。

请告诉我如何实现这一目标。

Cảm ơn.

câu trả lời hay nhất

您需要为段指定固定宽度。

nhập mô tả hình ảnh ở đây

那么你的代码将工作得很好(屏幕截图来 self 的测试项目)

nhập mô tả hình ảnh ở đây

不要忘记禁用色调

 [self.segment.cell setControlTint:NSClearControlTint ];

关于objective-c - NSSegmentedControl 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952308/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress