我有一个
Swift应用程序启动一个简单的NSWindow,像这样:
func applicationDidFinishLaunching(notification: NSNotification!) {
let storyboard = nsstoryboard(name: "MainStoryboard",bundle: NSBundle.mainBundle())
windowController = storyboard.instantiateInitialController() as? NSWindowController
windowController?.showWindow(self)
}
这很好,我的应用程序启动,窗口出现.但是:大小总是一样的.
在故事板中,我指定了一个自动保存名称:
另请注意,可选复选框被选中.
但无论如何,窗口每次都显示相同的大小.过去总是“刚刚起作用”,所以我不知道这是一个错误,还是一个缺失的部分.在手动实例化和显示窗口时,自动保存会自动与故事板一起工作吗?
解决方法
这似乎是一个Xcode的bug.我能够通过手动设置NSWindowController windowFrameAutosaveName属性来解决这个问题:
windowController?.windowFrameAutosaveName =“主应用程序窗口”
但是,如果将属性设置为与Interface Builder中显示的值不同的值,这仅适用于我.如果它以编程方式设置为在IB中使用的相同值,则它不起作用.
所以在IB中,自动保存名称留给MainAppWindow,并以编程方式设置为主应用程序窗口.