2012-04-17 8 views
3

どのボタンが押されたかに応じていくつかのウィンドウをロードするアプリケーションがあります。これらの1つを除くすべてがメインスクリーン(メインウィンドウが開いている画面)で開きます。そのうちの1つ(環境設定ウィンドウ)が最初の画面(メニューバーのある画面)で開きます。 NSWindowが開く画面を変更する方法はありますか?NSScreenを変更する方法NSWindowが表示されます

答えて

4

toohtikさんの答えがうまくいかなかった。私がやったことは、NSWindowをサブクラス化し、constrainFrameRect:toScreen:をオーバーライドすることでした。これにより、アプリケーションの「メイン画面」に新しいウィンドウが自動的に開きます。

- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen 
{ 
    AppDelegate *delegate = [[NSApplication sharedApplication] delegate]; 
    return [super constrainFrameRect:frameRect toScreen:delegate.window.screen]; 
} 
+0

完全に私のために働いた!良い解決策! –

1

なぜあなたはその動作を持っているのかわかりませんが、NSScreen引数をとるinitWithFrameメソッドで変更できます。