2017-01-20 11 views
2

2つのビューを持つOSXアプリケーションがあります。今の2つの間のセグは紙切れです。シートセグメンテーション後にOSX Cocoaアプリを閉じることができません

ビュー1からビュー2に切り替えると、ウィンドウ/アプリを閉じることができなくなります。 'x'は無効になり、cmd-Qはエラーノイズを生成します。これは、元のビューに戻る前に発生します。

これはなぜ起こっているのですか?私はprepareForSegueで呼び出すべきものがありますか?

は(も:私はシートセグエを実行するたびに、影は私の窓の周囲に構築し、私はこれは私が正しく元のビューを閉じていないよ意味を想像してください。?)あなたはボタンxを作成する必要があり

+0

を読むようにしてくださいあなたは、トピックのタイトルに自分用にそれを言いました。シートを閉じるだけです。 –

+1

あなたのアプリがシートを開いた後にモーダルループを開始するようです。あなたは再び応答するようにするためにモーダルループを停止することになっています。コードではいくつかの方法で行うことができ、そのうちの1つは 'NSApp.stopModal()' –

+0

です。ビュー2からビュー1にどうやって行くのですか?ビュー2にはシートを閉じるボタンがありますか? – Willeke

答えて

0

アクションと接続する:

self.dismissViewController(_:) 
0

複数の種類のセグがあります。

  1. 表示:show segueはあなたのUIをブロックしません。別のビューを作成するだけで、現在のビューとは別のドキュメント(異なるドキュメントや、ユーザーが両方を見て制御したい同じドキュメントの異なるビューなど)を同時に開くときに使用できます。

  2. モーダル:モーダルはダイアログボックスのようなものです。ほとんどの場合、同じビューを続行するにはになる必要があります。その結果、インスタンス化されたビューがブロックされます。保存せずに閉じたいかどうかを尋ねるように、たとえば、noを指定して質問に答えるまで、文書を再度修正するのは妥当ではありません。

  3. シート:モーダルのタイプですが、形状は異なります(たとえば、ダイアログボックスのようなものです:保存と開くのために使用されます)。

  4. Popover: "表示"の一種と考えることができます。インスタンス化されたコントロールに関する情報を提供するために使用できます。詳細については

this guidelines about dialog boxes

Popovers

関連する問題