Я попытался реализовать протокол NSWindowRestoration в Swift в приложении, не основанном на документах. Однако метод restoreWindowWithIdentifier
никогда не вызывается при запуске приложения. Может ли кто-нибудь указать на мою ошибку?Как реализовать NSWindowRestoration в Swift?
Вот подмножество кода (который компилируется и работает нормально):
class AppDelegate: NSObject, NSApplicationDelegate, NSWindowRestoration {
var windowController : MyWindowController?
func applicationDidFinishLaunching(aNotification: NSNotification?) {
windowController = MyWindowController(windowNibName:"ImageSequenceView")
}
class func restoreWindowWithIdentifier(identifier: String!, state: NSCoder!, completionHandler: ((NSWindow!,NSError!) -> Void)!) {
NSLog("restoreWindowWithIdentifier: \(identifier), state: \(state)")
}
}
class MyWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad();
window.restorationClass = AppDelegate.self
}
}
Спасибо заранее!
Из любопытства, что происходит, когда вы меняете порядок 'super.windowDidLoad()' и устанавливаете 'window.restorationClass'. – Erik
Извините, долгое путешествие. Просто попробовал, но не имеет значения ... –
Когда я использую 'self.dynamicType' и удостоверяюсь, что мои системные настройки настроены на восстановление Windows' restoreWindowWithIdentifier' на мой класс. –