我有一個文本框和窗口按鈕的窗口。它是無邊界和透明的,但是這個問題在任何窗口都會重現。可可粉窗口的圓角漸變背景
該窗口的內容視圖在IB中設置爲繪製窗口背景的自定義類。
下面的代碼:
- (void)drawRect:(NSRect)dirtyRect
{
[NSGraphicsContext saveGraphicsState];
float cornerRadius = 10;
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:self.bounds xRadius:cornerRadius yRadius:cornerRadius];
[path setClip];
NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:
[NSColor colorWithCalibratedRed:0.96f green:0.96f blue:0.96f alpha:1.00f], 0.0f,
[NSColor colorWithCalibratedRed:0.84f green:0.84f blue:0.84f alpha:1.00f], 1.0f,
nil];
[gradient drawInRect:self.bounds angle:270];
[NSGraphicsContext restoreGraphicsState];
}
它會導致一些非常奇怪的文物,像消失的對象或文本字段的背景更改爲窗口:
這是怎麼回事?我試圖隔離它,我一直在玩這個「圖形上下文狀態保存」的東西(我不知道我是否理解正確),但問題依然存在。
我有XCode 4.4,SDK是10.7(我的操作系統也是如此),部署目標是10.6。這可能沒有關係,但過去我一直在做類似的事情,而且我從來沒有遇到過這樣奇怪的問題。
人說看起來像一個棘手的問題。 – loyalflow 2012-08-30 20:14:40
是的。是的。 – radex 2012-08-31 06:11:43