drawRect nicht aufgerufen wird Hinzugefügt Untersicht

Ich versuche programmgesteuert erstellen Sie ein Fenster mit benutzerdefinierten contentView und eine benutzerdefinierte NSTextField Kontrolle, aber ich habe Probleme dabei, diese Hierarchie der Fenster und Ansichten zu zeichnen, sich.

Erstelle ich eine benutzerdefinierte randlose Fenster und überschreiben Sie es setContentView /contentView Accessoren. Dies scheint gut zu funktionieren und Brauch contentView ' s initWithFrame und drawRect Methoden aufgerufen werden, wodurch contentView zeichnen sich korrekt.

Aber sobald ich versuchen, programmgesteuert hinzufügen von benutzerdefinierten NSTextField zu contentView es nicht Hinzugefügt oder gezeichnet werden. Sagen Benutzerdefiniert meine ich, dass ich ihn außer Kraft setzen der designierte Initialisierer (initWithFrame:frame - nur für benutzerdefinierte schriftart-Einstellung) und drawRect-Methode die wie folgt aussieht:

- (void)drawRect:(NSRect)rect {
    NSRect bounds = [self bounds];
    [super drawRect:bounds];
}

Benutzerdefinierte contentView die Initialisierung sieht wie folgt aus:

- (id)initWithFrame:(NSRect)frame {
    self = [super initWithFrame:frame];
    if (self != nil) {
      //i want to draw itself to the same 
      //size as contentView thus i'm using same frame
      CustomTextField *textField = [[CustomTextField alloc] initWithFrame:frame];
      [self addSubview:textField];
      [self setNeedsDisplay:YES];
    }
    return self;
}

Ich habe strugling mit diesem für ein paar Stunden, so dass alle Zeiger sind sehr geschätzt. Mehr code ist auf Anfrage erhältlich .)

InformationsquelleAutor Eimantas | 2009-09-26
Schreibe einen Kommentar