2016-06-26 5 views
-2

Ich versuchte es mit folgendem Code:Swift: Wie programmiere ich ein Bild in ein Fenster?

@IBOutlet weak var window: NSWindow!! //I don't understand this line 

    let imageView = NSImageView() 
    imageView.image = NSImage(byReferencingURL: IMAGE) 
    window.contentView?.addSubview(imageView) 

ich keine Kompilierung habe und Zeitfehler und die NSImage scheint laufe richtig das Bild geladen zu haben. - Aber leider taucht es nicht in meinem Fenster auf.

BEARBEITEN: Die Rahmeneigenschaft muss festgelegt werden. Folgend Code-Zentren das Bild im Fenster:

let imageView = NSImageView() 
let image = NSImage(byReferencingURL: IMAGE_URL) 
imageView.image = image 
imageView.frame = self.window.contentView!.bounds 
imageView.autoresizingMask = [.ViewWidthSizable, .ViewHeightSizable]         
self.window.contentView?.addSubview(imageView) 

Antwort

0

Um programmatisch eine Bildansicht zu Ihrem Fenster hinzufügen, werden Sie wollen ein NSImageView Objekt verwenden und die Bildeigenschaft festlegen. Im Folgenden habe ich eine einfache Funktion erstellt, die Sie in den View-Controller Ihres Fensters einfügen können. Darüber hinaus sollten Sie andere NSImageView Eigenschaften (z. B. frame) festlegen, um das gewünschte Ergebnis zu erzielen.

func loadImageView() { 
    /* Create an image view */ 
    let imageView = NSImageView() 
    /* Set image property and replace name with your image file's name */ 
    imageView.image = NSImage(named: "YOUR_IMAGE_FILE_NAME_HERE") 

    /* Add the new imageView to the main view */ 
    self.view.addSubview(imageView) 
} 
+0

Danke. Ich habe die letzte Zeile geändert in: 'window.view.addSubview (imageView)' Jetzt bekomme ich den Fehler: "Wert des Typs" (NSView, stringForToolTip: NSToolTipTag, Punkt: NSPoint, userData: UnsafeMutablePointer ) -> String 'hat kein Mitglied 'addSubview' "' window' ist: '@IBOutlet schwaches var window: NSWindow!' – PjotrC

+0

@PjotrC In welcher Klasse implementieren Sie die Funktion? Wenn es sich in Ihrer ViewController-Hauptunterklasse befindet, sollten Sie nicht über die Eigenschaft 'window' auf die Ansicht zugreifen. –

+0

Ich arbeite in der Klasse _AppDelegate_, die automatisch von Xcode generiert wird. Es scheint, dass ich _contentView_ statt nur _view_ verwenden muss (siehe aktualisierte Frage). Ich habe nicht welche Eigenschaften ich auf welche Werte einstellen soll ... – PjotrC