2009-06-08 9 views

Antwort

3

Michael Vannorsdel schlägt NSView zum Zwecke sublassing, ich zitiere:

, würden Sie wirklich besser dran machen eine NSView Unterklasse und es zeichnen das Bild, das Sie wollen in DrawRect :. Lesen

- (void)awakeFromNib 
{ 
    myImage = [[NSImage alloc] init.... 

    [self setNeedsDisplay:YES]; 
} 

- (void)drawRect:(NSRect)rect 
{ 
    NSSize isize = [myImage size]; 
    [myImage drawInRect:[self bounds] fromRect:NSMakeRect(0.0, 0.0, 
isize.width, isize.height) operation: NSCompositeCopy fraction:1.0]; 
} 

dass ganzen Thread auf cocoabuilder, es ist recht aufschlussreich.

5

Ein Fenster in Cocoa hat eine Root-Level-Ansicht, die "Inhaltsansicht". Dies ist die Ansicht, die alle anderen in einem Fenster enthält. Standardmäßig ist es nur ein einfacher, leerer NSView. Sie können jedoch problemlos Ihre eigene benutzerdefinierte Unterklasse NSView erstellen, die Methode drawRect: überschreiben, um Ihr Hintergrundbild zu zeichnen, und dieses für Ihre benutzerdefinierte Ansicht verwenden.

Es könnte jedoch einfacher sein, eine einfache alte NSImageView zu verwenden. Der Vorteil besteht darin, dass Sie beispielsweise das automatische Skalierungsverhalten festlegen können, um das Bild an einer Ecke zu fixieren (versuchen Sie dies mit Installer.app, indem Sie die Größe des Installer-Fensters ändern). Sie könnten es auch halbdurchsichtig machen, so dass der Hintergrund ein wenig durchscheinen würde. (Wieder denke ich an Installer.app; Ihre App könnte ganz anders sein)

Hoffe, dass Sie in die richtige Richtung geht!

Verwandte Themen