【问题标题】:How to display NSWindow within the main window in Cocoa?如何在 Cocoa 的主窗口中显示 NSWindow?
【发布时间】:2015-02-19 12:08:12
【问题描述】:

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

这是我在NSViewController的子类中写的:

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

但是,这会在主窗口之外打开一个新窗口。我想在主窗口中显示它,可能在主窗口的中心(我将myView.frame 值设置在中心)。

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

【问题讨论】:

    标签: cocoa swift nswindow makekeyandordertofront


    【解决方案1】:

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

    【讨论】:

    • 哦,我刚刚知道看似分散的窗口是从屏幕的左下角设置的,而不是从主窗口的左下角设置的.. . 谢谢。
    • Mac OS 默认使用左下角。 NSWindow 确实有很多方便的设置位置的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    相关资源
    最近更新 更多