如何在Cocoa的主窗口中显示NSWindow?

时间:2015-02-19 12:08:12

标签: cocoa swift nswindow makekeyandordertofront

当用户点击主窗口中的按钮时,我想显示一个新窗口,但是当我使用makeKeyAndOrderFront调用单独的窗口时,窗口会远离主窗口弹出。

这是我在NSViewController的子类中编写的内容:

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

但是,这会在主窗口外面打开一个新窗口。我想在主窗口中显示它,可能在主窗口的中心(我将.frame的{​​{1}}值设置为位于中心位置。)

那么如何在主窗口中调用新窗口?换句话说,我可以指定新窗口显示的位置吗?

1 个答案:

答案 0 :(得分:3)

您需要将坐标和/或矩形转换为屏幕空间。 NSView和NSWindow提供了以“转换”开头的方法来看看那些。 有时您需要链接以从视图空间转换为窗口然后转换为屏幕。 请记住,窗口具有NSScreen屏幕方法,并且窗口可能出现在许多不同大小的屏幕上,并且可能跨越多个屏幕。