0
我有一個NSView,具有自定義背景繪製的子類,用漸變填充。 在IB中,我在其中間放置了一個複選框。部分繪製NSView背景,使用漸變
這是drawRect方法。
-(void) drawRect:(NSRect)dirtyRect {
CGFloat sc = 0.9f;
CGFloat ec = 0.6f;
NSColor* startingColor = [NSColor colorWithDeviceRed:sc green:sc blue:sc alpha:1];
NSColor* endingColor = [NSColor colorWithDeviceRed:ec green:ec blue:ec alpha:1];
NSGradient *grad = [[NSGradient alloc] initWithStartingColor:startingColor endingColor:endingColor];
[grad drawInRect:dirtyRect angle:270];
}
會發生什麼,這同樣的方法被調用到,然後再繪製整個視圖區域的一部分,其中NSButton(複選框)位於它的頂部。當然,複選框的背景是用完整的漸變繪製的,並且它不是正確的,因爲該部分要小得多。同樣的情況發生在我說的NSView上的其他控件上。
這種事情的建議方法是什麼?
一種選擇是使控件的高度與視圖相同,但這會導致將來出現問題。