2016-06-26 4 views
-2

Я попробовал его с помощью следующего кода:Swift: Как программно загружать изображение в окно?

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

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

У меня нет компиляции и запуска ошибки времени и NSImage кажется, загрузили изображение правильно. - Но, к сожалению, он не появляется в моем окне.

РЕДАКТИРОВАТЬ: Катушка, которая должна быть установлена. После кода центрирует изображение в окне:

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) 

ответ

0

Чтобы программно добавить вид изображения в окне вы хотите использовать NSImageView объект и установить свойство изображения. Ниже я создал простую функцию, которую вы можете разместить в окне View Controller. Кроме того, вы должны установить другие свойства NSImageView (например, frame) для достижения желаемого результата.

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

Спасибо. Я изменил последнюю строку на: 'window.view.addSubview (imageView)' Теперь я получаю ошибку: «Значение типа» (NSView, stringForToolTip: NSToolTipTag, точка: NSPoint, userData: UnsafeMutablePointer ) -> String 'имеет no member 'addSubview' ''window':' @IBOutlet weak var window: NSWindow! ' – PjotrC

+0

@PjotrC В какой класс вы реализуете функцию? Если он находится в вашем основном подклассе ViewController, вы не должны получать доступ к представлению через свойство 'window'. –

+0

Я работаю в классе _AppDelegate_, который автоматически генерируется Xcode. Кажется, что я должен использовать _contentView_ вместо просто _view_ (см. Обновленный вопрос). Я не знаю, какие свойства я должен установить для каких значений ... – PjotrC

Смежные вопросы