LoginSignup
4
3

More than 5 years have passed since last update.

macOS の Storyboard 上で autosaveName を指定しても意味がない

Last updated at Posted at 2016-10-06

2回もハマって腹が立ち、こんな悲しい思いを他の人にもして欲しくないために書いておきます。

Storyboard 上にある Window の Autosave 欄は巧妙な罠です。

Screen Shot 2016-10-06 at 19.00.03 1.png

xib と違い、Storyboard ではここに identifier を指定しても無視されます。
NSWindowController(サブクラス)の windowDidLoad() で書くのが正解。

override func windowDidLoad() {

    super.windowDidLoad()

    self.windowFrameAutosaveName = "Document Window"  // correct!
}

しかも、「念のため」などと Storyboard 上に windowDidLoad() で指定したのと同じ文字列が入れてると windowDidLoad() で指定したのごと無効になります。空欄(またはダミー文字列)にしておきましょう。

Screen Shot 2016-10-06 at 19.02.40.png

二重の罠!

cf. NSWindowController Autosave using Storyboard

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3