實例化時,我想可以設置自己的看法的背景。目前,我試圖通過覆蓋做到這一點 - (空)的drawRect:(的NSRect)dirtyRect像建議here,所以我的自定義視圖看起來是這樣的:背景顏色的NSView在IB
@implementation ViewWithBackgroundColor
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// ...
}
return self;
}
- (void)dealloc
{
[super dealloc];
}
- (void)drawRect:(NSRect)dirtyRect
{
[super drawRect:dirtyRect];
[[NSColor greenColor] setFill];
NSRectFill(dirtyRect);
}
@end
當我擊築的運行的觀點出現在默認的灰色背景,但是當我調整窗口大小時,視圖顯示爲所需的綠色。
是否有人知道我缺少的是什麼?我不確定它是否相關,但視圖存儲在筆尖中。在YES awakeFromNib,但它並沒有幫助:我已經打過電話給setNeedsDisplay。
THX提前, 葉夫根尼·
我想我必須調用_ [super drawRect:dirtyRect] _來獲取我的子視圖,但它似乎是不必要的 - thx。 – Yevgeniy
設置背景像[self setBackground:aColor]工作 - thx。我記得以前的版本,NSView沒有響應setBackground。 – Yevgeniy
我只注意到用_ [self setBackgroundColor:aColor] _設置backgroundColor只是因爲我之前實現它並忘記了它。在我刪除了我自己的屬性(backgroundColor)後,NSView停止了對_setBackgroundColor_的響應,雖然我的鏈接是10.6。 我原來的問題是與我使用[NSColor _sourceListBackgroundColor]作爲我的顏色(不是綠色,如上例)一樣。我發佈的代碼很適合像[NSColor greenColor]這樣的顏色。無論如何,Thx Rob和大家。 – Yevgeniy