Xcode 9で新しいプロジェクトを開始しました(SceneKitテクノロジーを搭載したmacOSゲーム)。 NSWindowController
を含むストーリーボードにNSWindow
とGameViewController
とSCNView
と関連しています。プロジェクトは正常に実行されます(飛行機を飛ばす)。Xcode 9ストーリーボードウィンドウの位置自動保存
ここで私はNSWindow
の "MainWindow"に自動保存の値を設定し、プロジェクトを実行し、ウィンドウのサイズを変更してから終了します。私は、自動保存をオンに設定して終了し、ウィンドウの位置がNSUserDefaults
を使用して保存されることを知っているので、私はターミナルでチェック:
$ defaults read com.koati.Bloks ⏎
{
"NSWindow Frame MainWindow" = "415 228 450 322 0 0 1280 777 ";
}
行動を期待だという。今度はもう一度プロジェクトを実行しますが、ウィンドウの位置は復元されません。ストーリーボードでGameViewController
の関係を削除した場合、位置が保存されて正しく復元されるため、GameViewController
はウィンドウのサイズと位置に何らかの影響を与えていると思います。 古いXcode with XIBsでは、このような問題はありませんでした。
EDIT:いくつかのテストをして、いくつかの後NSViewController
にNSView
とSCNView
を交換して同じ結果を生成して、私は今、すべてでSceneKitに関連していないと思います。だから問題は、NSViewController
がストーリーボードを介してNSWindow
の内容に影響し、ウィンドウの位置とサイズに影響していると思います。
この問題を解決する方法を知っている人はいますか?
私は同じ問題を経験し、あなたの観察に同意します。私はこの問題のためのテストプロジェクトを持っています。テンプレートからのデフォルト:Window-> View Controller-> Viewは、位置とサイズを保持します。 Window-> Split View Controller-> Viewに置き換えた場合、位置とサイズは保持されません(常にデフォルトの位置とサイズに戻ります)。 ウィンドウ - > View Controller-> View-> Container View-> Split View Controller-> Viewを再度実行すると、サイズと位置が保持されます。 –