小编Ef *_*Dot的帖子

Xcode 9 故事板窗口位置自动保存

我在 Xcode 9(使用 SceneKit 技术的 macOS 游戏)中启动了新项目。我被故事情节包含NSWindowControllerNSWindow和相关GameViewControllerSCNView。项目运行良好(旋转飞机)。

现在在情节提要中,我将 Autosave 值设置为“MainWindow” NSWindow,运行项目,调整窗口大小,然后退出。我知道在退出窗口位置设置自动保存将使用 保存NSUserDefaults,所以我检查终端:

$ defaults read com.koati.Bloks                                           ?
{
    "NSWindow Frame MainWindow" = "415 228 450 322 0 0 1280 777 ";
}
Run Code Online (Sandbox Code Playgroud)

这是预期的行为。现在我再次运行项目,但我看到窗口位置没有恢复。如果在情节提要中删除GameViewController关系,则位置会被正确保存和恢复,所以我想这会GameViewController以某种方式影响窗口大小和位置。在带有 XIB 的旧 Xcode 中没有这样的问题。

编辑:经过一些测试后,我现在认为它与 SceneKit 完全无关,因为替换SCNViewNSViewinNSViewController会产生相同的结果。所以我认为问题是NSViewController通过 Storyboard 附加到NSWindow内容会影响窗口位置和大小。

也许有人知道如何解决这个问题?

macos cocoa storyboard xcode9

4
推荐指数
1
解决办法
1354
查看次数

标签 统计

cocoa ×1

macos ×1

storyboard ×1

xcode9 ×1