我遇到了NSSegmentedControl的問題。 我有一個自定義的視圖,我繪製了帶陰影的漸變。 繪圖是可以的,但是當我將一個NSSegmentedControl放入其中時,會發生一些奇怪的事情 - 自定義視圖的背景通過分段控件發光,就好像分段控件具有低alpha值一樣。當繪製超級視圖時NSSegmentedControl的奇怪繪圖行爲
這裏有圖片,演示問題:
隨着背景自定義視圖:
而背景自定義視圖:
正如你可以看到左邊第一張圖片中的上角,分段控件未正確繪製。 下面是從自定義視圖drawRect方法:
- (void)drawRect:(NSRect)dirtyRect {
NSShadow *shadow = [[NSShadow alloc] init];
[shadow setShadowOffset:NSMakeSize(0.0, -6.0)];
[shadow setShadowBlurRadius:3.0];
[shadow setShadowColor:[[NSColor blackColor] colorWithAlphaComponent:0.3]];
[shadow set];
NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:[NSColor colorWithDeviceWhite:0.8 alpha:1.0],(CGFloat)0.0,[NSColor colorWithDeviceWhite:0.65 alpha:1.0],(CGFloat)0.5,[NSColor colorWithDeviceWhite:0.3 alpha:1.0],(CGFloat)0.5,[NSColor colorWithDeviceWhite:0.5 alpha:1.0],(CGFloat)1.0, nil];
[gradient drawInRect:self.bounds angle:90];
NSBezierPath *bezierPath = [NSBezierPath bezierPath];
[bezierPath moveToPoint:NSMakePoint(0, 0)];
[bezierPath lineToPoint:NSMakePoint(-self.bounds.size.height, 0)];
[bezierPath lineToPoint:NSMakePoint(-self.bounds.size.height, -self.bounds.size.width)];
[bezierPath lineToPoint:NSMakePoint(0, -self.bounds.size.width)];
[[NSColor whiteColor] set];
[bezierPath stroke];
}
你能幫助我嗎? 我不知道如何解決這個問題。
全部| Gro ... | Fav ...控制?我無法理解問題是什麼。 – paulmelnikow
對不起。我有點不爽。我的意思是前後分段控制 - 在第一張圖片中不應該有這個醜陋的漸變。 –
所以你問 - 爲什麼你應用到工具欄的漸變流入後退和+按鈕? – paulmelnikow