2016-05-28 7 views
0

Window Controllerでを接続しました。 Window Controllerを呼び出す場合は、ショートカットを追加しました。しかし、ショートカットを複数回押すと、複数のウィンドウが開きます。どのようにウィンドウの数をカウントする関数を呼び出すと、0の場合は、ショートカットを押すとWindow Controllerが開きますか?SwiftのGUIで1つのウィンドウを許可する方法

私はSwiftをプログラミング言語として使用しています。

答えて

0

ビューの初期化が正常に完了したときに増分される静的変数と、ビューの終了時のデクリメントを設定できます。その後、初期化の前にガードステートメントの値をチェックしたり、その変数に基づいてメニューの可用性を設定することができます。

class WindowController: NSWindowController { 
    static var count = 0 

    override func windowDidLoad() { 
    WindowController.count += 1 
    } 

    deinit { 
    WindowController.count -= 1 
    } 
} 

func createWindow() { 
    guard WindowController.count = 0 else { return } 
    // Create window here 
} 
+0

申し訳ありませんが、あなたにフォローできません...変数を追加する場所とその確認方法はありますか? – HelloToYou

+0

これを行う簡単な方法は、静的変数をWindowControllerに追加し、メニューが呼び出すメニューを呼び出す関数で変数が0かどうかを確認することです。サブクラスでは、静的変数をWindowDidLoadとDeinitまたはWindowWillCloseのデクリメント。 –

+0

サンプルコードを作成できましたか?私はスウィフトとは新しいので、いくつかの言葉は私を混乱させています。だから...どこで変数を作りますか?そして、作成した後、 'Menu-Object'を' viewDidLoad() '-Functionに接続しなければなりません。varが0の場合、チェックする必要がありますか?それとも意味は?結論として、私は実際に私を助けるだろう:) – HelloToYou

関連する問題