相关疑难解决方法(0)

如何在OSX应用程序中恢复窗口位置?

我创建了一个故事板,它有窗口视图控制器作为初始视图控制器.我给窗口一个自动保存名称preferencesWindow.在首选项中,我在关闭时检查了[x] Restorable和[x] Release.

当我进入菜单并单击首选项时,我加载窗口控制器,如下所示:

    let storyboard          = NSStoryboard(name: "Preferences", bundle: nil)
    let windowController    = storyboard.instantiateInitialController() as? NSWindowController
    let window              = windowController?.window

    windowController!.showWindow(self)
Run Code Online (Sandbox Code Playgroud)

这将显示首选项视图控制器,当我将其拖动到另一个位置并单击关闭按钮时它将关闭.到现在为止还挺好.但是当我从菜单中再次加载窗口时,它会显示它的原始位置,而不是我上次拖动窗口的位置.为什么是这样?

回答 它似乎是xCode 7中的一个错误,在代码中设置自动保存名称解决了它.

    let storyboard          = NSStoryboard(name: "Preferences", bundle: nil)
    let windowController    = storyboard.instantiateInitialController() as? NSWindowController
    let window              = windowController?.window

    window!.setFrameAutosaveName("preferences")
    windowController!.showWindow(self)
Run Code Online (Sandbox Code Playgroud)

macos autosave nswindow swift

3
推荐指数
2
解决办法
2191
查看次数

标签 统计

autosave ×1

macos ×1

nswindow ×1

swift ×1