2015-09-11 8 views
0

Я пытаюсь загрузить NSWindow из NSViewController на OS X и я делаю следующее:Загрузка СИБ на OS X от NSViewController

private lazy var discoverable: DiscoverableWindow = { 
    return DiscoverableWindow.instanceFromNib() 
}() 

Статический метод instanceFromNib() определяется следующим образом:

class func instanceFromNib() -> DiscoverableWindow { 
    var instance = DiscoverableWindow() 
    var objects: NSArray? 
    NSBundle.mainBundle().loadNibNamed("DiscoverableWindow", owner: instance, topLevelObjects: &objects) 
    return instance 
} 

Я использую окно, чтобы показать из моих NSViewController:

NSApp.beginSheet(self.discoverable, modalForWindow: NSApplication.sharedApplication().mainWindow!, modalDelegate: nil, didEndSelector: nil, contextInfo: nil) 

Однако, когда я загрузить его я вижу следующее:

enter image description here

Есть ли что-то я делаю неправильно? Почему нет NSWindow? Я прочитал следующее по этому вопросу:

https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html

Cocoa - loadNibNamed:owner:topLevelObjects: from loaded bundle

Cocoa: NSApp beginSheet sets the application delegate?

ответ

1

Почему вы не сделать контроллер окна для обработки DiscoverableWindow?

Создайте подкласс NSWindowController, убедитесь, что «Также создайте xib-файл для пользовательского интерфейса». Настройте свое окно в DiscoverableWindowController xib, снимите флажок «Visible At Launch» в окне инспектора свойств для окна.

enter image description here

Тогда в вашем ViewController:

@IBAction func showSheet(sender: NSButton) { 
    let discoverableWC = DiscoverableWindowController(windowNibName: "DiscoverableWindowController") 
    view.window?.beginSheet(discoverableWC.window!, completionHandler: nil) 
} 

Как правило, каждое окно в вашем приложении должны управляться его собственный контроллер окна, пусть контроллер окна обрабатывать загрузку острия и экземпляра для вас ,

Download the sample project here.

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

  • Нет связанных вопросов^_^