1

ユーザーがメイン ウィンドウのボタンをタップしたときに新しいウィンドウを表示したいのですが、 を使用して別のウィンドウを呼び出したときにmakeKeyAndOrderFront、ウィンドウがメイン ウィンドウから遠く離れてポップアップしました。

のサブクラスで、私が書いたものは次のNSViewControllerとおりです。

myWindow = NSWindow()
myWindow.setFrame(myView.frame, display: true)
myWindow.contentView = myView
myWindow.makeKeyAndOrderFront(self)

ただし、これにより、メイン ウィンドウの外に新しいウィンドウが開きます。メインウィンドウ内、おそらくメインウィンドウの中央に表示したい(中央に配置するように.frame値を設定しmyViewました)。

では、メイン ウィンドウ内で新しいウィンドウを呼び出すにはどうすればよいでしょうか。つまり、新しいウィンドウが表示される場所を指定できますか?

4

1 に答える 1

3

座標や rect を画面空間に変換する必要があります。NSView と NSWindow は、「convert」で始まるメソッドを提供しています。それらを見てください。場合によっては、ビュー スペースからウィンドウに、次にウィンドウからスクリーンに変換するために連鎖する必要があります。ウィンドウには NSScreen screen メソッドがあり、ウィンドウはさまざまなサイズの画面に表示され、複数の画面にまたがる可能性があることに注意してください。

于 2015-02-19T13:53:02.223 に答える