我正在使用encodeRestorableState
/ restoreStateWithCoder
来保存和恢复窗口状态。 (我手动执行此操作是因为我希望在文档中明确保存窗口状态,而不仅仅依赖于恢复其状态作为恢复应用程序状态的一部分的操作系统)
我遇到的问题是,当它恢复时,控制台中会记录一个错误,它无法恢复第一个响应者,因为有问题的视图将其窗口设置为nil。
我在编码之前尝试调用makeFirstResponder(nil)
,但是窗口是它自己的第一个响应者,并且抛出异常,因为它无法对自身进行编码。
我是通过我的窗口控制器windowDidLoad
执行此操作的。在awakeFromNib
中执行该操作并没有什么作用。
那么有没有办法可以阻止窗口保存/恢复第一个响应者,或者确保首先在窗口中安装第一个响应者视图?