2016-05-04 4 views
1

Я использую раскадровки и быстро. Теперь я пытаюсь открыть новый NSWindow, который упакован внутри xib-файла. (Я создал новый файл xib, который содержит NSWindow)Открыть NSWindow от xib при использовании раскадровки и быстрота

Я добавил в свой проект следующий код, но он не открывает ни одного окна.

let controller = NSWindowController(windowNibName: "xibFile") 
controller.showWindow(self) 

Я уверен, что я делаю что-то неправильно, как

print(controller.window?.title) 

также не даст мне правильный заголовок окна из файла XIb.

Надеюсь, что кто-нибудь может дать подсказку, что я делаю неправильно. Благодаря!

+0

ли ваше окно XIB имеет пользовательский класс или просто NSWindowController? Где вы запускали 'controller.showWindow (self)'? Это внутри AppDelegate? – Jacky

ответ

2

В вашем втором СИБ:

class SecondNibController: NSWindowController { 
    override var windowNibName: String? { 
     return "SecondNib" // no extension .xib here 
    } 
} 

Не забудьте подключить window выход из SecondNibConntroller к окну.

В главной раскадровке:

class ViewController: NSViewController { 
    let secondNibController = SecondNibController() 

    @IBAction func openSecondWindow(sender : AnyObject) { 
     secondNibController.showWindow(nil) 
    } 
}