2017-03-12 5 views
0

私はswiftを使った新しいMACアプリケーション開発です。私は異なるメニューオプションを持つNSViewControllerを持っています。Swift mac app - >移動カーソルが閉じるNSWindow

私は既に1つのNSWindowを開き、「ウィンドウ」メニューオプションをタップして別のウィンドウを開きます。

let passwordVC = PasswordViewController() 
     let pwdWindow = NSWindow(contentViewController: passwordVC) 
     pwdWindow.title = "Password" 
     pwdWindow.orderFront(self) 
     let controller = NSWindowController(window: pwdWindow) 

     controller.showWindow(self) 

カーソルを移動すると自動的に閉じます。私は何もしていない、それはそのままだ。私は何が問題なのか分かりません。親切に助けてください。

答えて

0

私はこのように使用しています。それは私のために働く。代わりの方法と思われる。

let passwordVC = PasswordViewController() 
     let pwdWindow = NSWindow(contentViewController: passwordVC) 
     pwdWindow.title = "Password" 
     let application = NSApplication.shared() 
     application.runModal(for: pwdWindow) 
+0

これは答えですか、これはあなたの問題に対する解決策ですか?それははっきりしていません。 –

+0

マイケル編集。チェックしてください。 – Neela

0

投稿されたコードから、あなたのウィンドウは範囲外になり、破壊されます。より高いスコープの変数にウィンドウを保持してみてください。クラスプロパティのように:

class Controller: NSViewController { 
    var pwdWindow: NSWindow! 
    override func viewDidLoad() { 
     pwdWindow = NSWindow(contentViewController: passwordVC) 
    } 
} 
+0

お返事ありがとうございます。しかし、私はこのビルドのエラーを取得する "クラスの宣言は、値"パスワードを超えて閉じることはできません "外のスコープで定義された"。 – Neela

+0

ああ、実装固有のものです。なぜそれが起こるのか分かりません。理由を理解するためにコードを参照する必要があります。 – hola

関連する問題