• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

set(Background)Color beim NSView

NSView kennt weder eine Methode "setBackgroundColor:" noch "setColor:". Wo hast Du diese Methoden her?

MacApple
 
-setBackgroundColor: riecht nach NSWindow. Wenn Du einen einfarbigen NSView haben willst, Nighthawk, musst Du Dir erst eine entsprechende Unterklasse zusammenbauen. Ungefaehr so:

Code:
#import <AppKit/AppKit.h>


@interface ColoredColor: NSView

	{
		NSColor *color;
	}

	- (void)setColor: (NSColor*)theColor;
	- (NSColor*)color;

@end


@implementation ColoredView

	- (void)dealloc {
		[color release];
		[super dealloc];
	}

	- (void)setColor: (NSColor*)theColor {
		[theColor retain];
		[color release];
		color = theColor;
	}

	- (NSColor*)color {
		return color;
	}

	- (void)drawRect: (NSRect)rect {
		if ([self color]) {
			[[self color] set];
			NSRectFill(rect);
		}
	}

@end

(Schnell zusammengestoppelt, koennte Fehler enthalten.)