回答編集履歴

1

追記

2020/03/18 01:14

投稿

hoshi-takanori
hoshi-takanori

スコア7895

test CHANGED
@@ -1,3 +1,63 @@
1
1
  これでしょうか。
2
2
 
3
3
  ![イメージ説明](18be7aacdd79d1a86e357cecfa65971f.png)
4
+
5
+
6
+
7
+ ---
8
+
9
+
10
+
11
+ ウィンドウのタイトルは目的の ViewController の title プロパティで設定できます。
12
+
13
+ 呼び出し側 ViewController の prepare(for segue:) で設定する場合:
14
+
15
+
16
+
17
+ ```Swift
18
+
19
+ // ViewController
20
+
21
+
22
+
23
+ override func prepare(for segue: NSStoryboardSegue, sender: Any?) {
24
+
25
+ if let vc = segue.destinationController as? NSViewController {
26
+
27
+ vc.title = "New Window"
28
+
29
+ }
30
+
31
+ }
32
+
33
+ ```
34
+
35
+
36
+
37
+ 呼び出された ModalViewController で設定する場合
38
+
39
+
40
+
41
+ ```Swift
42
+
43
+ // ModalViewController
44
+
45
+
46
+
47
+ override func viewDidLoad() {
48
+
49
+ super.viewDidLoad()
50
+
51
+ self.title = "New Window"
52
+
53
+ }
54
+
55
+ ```
56
+
57
+
58
+
59
+ それ以外の NSWindow の属性(タイトルバーを表示するか、など)については、NSWindow のコンストラクタ引数でしか設定できないようなので、私のスクリーンショットのように Storyboard で Window Controller を追加するか、自分で NSWindow を作る必要があるかと思います。
60
+
61
+
62
+
63
+ ちなみに、prepare(for segue:) の段階ではまだ Window も View も作られてないので、prepare(for segue:) で NSApplication.shared.windows を取得した場合は既存の main window のみが返るはずです。