15.4 Lösung: Die Pinselfarbe ändern

Wenn Sie die Eigenschaft alertColor hinzufügen, müssen Sie ihr Speicherattribut mit copy angeben, weil NSColor dem NSCopying-Protokoll entspricht. Ich habe auch ein NSRect namens frameRect als Instanzvariable eingefügt.

CustomView/HelloApplication25/IconView.h

#import <Cocoa/Cocoa.h>

@interface IconView : NSView {
    NSColor *alertColor;
    NSRect frameRect;
}
@property(copy) NSColor *alertColor;
@end

In der Implementierungsdatei des Views senden wir die set-Methode an alertColor und ziehen einen Rahmen um das Rechteck. Ich habe das Rechteck und die Pinselbreite in awakeFromNib angelegt, damit ich das nicht bei jedem Aufruf von drawRect: machen muss.

CustomView/HelloApplication25/IconView.m

#import "IconView.h"

@implementation ...

Get Cocoa-Programmierung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.