teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/03/18 01:14

投稿

hoshi-takanori
hoshi-takanori

スコア7903

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