私のNSViewsと私がプログラムで作成したウィンドウは、画面の解像度が何であっても、メインのデスクトップに接続されているディスプレイの数にかかわらず固定の位置にしています。例えば、私が外部モニタを持っている場合や、画面解像度を変更する場合、NSViewまたはNSWindowのNsRectが常に同じ場所に表示されるようにします。これは効果がありますか?NSViewsとNSWindowを固定位置にする
NSRect mainFrame = [[NSScreen mainScreen] frame]
NSRect helpFrame = NSZeroRect;
helpFrame.origin.x = (mainFrame.size.width - width)/2.0;
解像度が何であっても、私のウィンドウのx値を常に中央に置くのですか?私は、外付けモニターを接続すると解像度が変わり、画面の中央がもはや私が望むところではないと感じています。 NSScreen mainScreen
は適切なものですか?ありがとう!
「NSApplicationDidChangeScreenParametersNotification」の下にオブジェクトをセンタリングする方法はありますか?それを更新する簡単な方法はありますか? –
' - [NSWindow center]'で提供されている位置付けでOKなら、関連するウィンドウで呼び出すだけです。それ以外の場合は、好きな位置を計算し、 '-setFrame ...'メソッドの1つを呼び出します。 –