2016-12-24 11 views
2

に/設定したフォーカスを取り戻すためにどのように私はのようなモーダルダイアログと呼ばれますこれは:は私のビューのいずれかでのMac OSスウィフトアプリケーション

let application = NSApplication.shared() 
application.stopModal() 

ダイアログを呼び出すビューが制御を取り戻します。コードを実行した後、終了します。画面には、ウィンドウにフォーカスがないことが表示されます。私のウィンドウのタイトルバーをクリックすると、タイトルバーの左側にある赤、オレンジ、緑のボタンがグレーからグレーに変わります。これをプログラムで行うにはどうすればよいですか?

NSApplication.activateを試しました。それは何もしません。おそらく、私のアプリはすでにアクティブです。焦点がないだけです。私はまた、ビュー内のテーブルで行を選択しようとしました。行は選択されていますが、ウィンドウは選択されていません。

+1

NSWindowのドキュメントはあなたにorderFrontのようなメソッドを提供します:たとえば...今、あなただけのフロントに行くべきウィンドウへの参照を必要としています。または、現在のウィンドウにダイアログモーダルを実行する必要はありません。 – Volker

答えて

0

NSWindowのmakeKey()を試すことができます。または、makeKeyAndOrderFront(_ sender:Any?)。これらはウィンドウをアクティブにします。

たとえば、niceWindowにフォーカスを当てる必要があります(フォーカスを付けるウィンドウへの参照が必要です)。その後の操作を行います。

niceWindow.makeKey() 

または

niceWindow.makeKeyAndOrderFront(self) 
+0

私はそれをself.view.window!.makeKey()で動作させました。あなたの質問を回答に変えて、他の人が恩恵を受けるようにして、私はそれを受け入れます。 – curt

+0

完了。助けてくれてうれしい! –

+0

作業コードを掲示できますか?私はまったく同じ問題を抱えていますが、それを機能させることはできません。 http://stackoverflow.com/questions/41581740/how-to-bring-focus-to-window-after-closing-modal-in-swift-3-for-macos – Travis

関連する問題