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

标签 cocoa swift nswindow makekeyandordertofront

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

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

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

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

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

最佳答案

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

关于cocoa - 如何在 Cocoa 的主窗口中显示 NSWindow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28606015/

相关文章:

ios - 如何检查 NSString isEqualToString 是否有很多值

macos - 创建一个作为守护进程运行的简单 Hello World 工具

ios - 日期键的快速编码

swift - 如何将变量从 SecondViewController 传递到 TableViewController 中的 loadData() 函数?

objective-c - NSWindow:将部分图像放在窗口外

macos - 按 ID 对核心数据排序

objective-c - Mac OS X 语音转文本 API。如何?

swift - widgetPerformUpdateWithCompletionHandler 仅调用一次

cocoa - Lion iCal 喜欢 NSWindow

macos - NSWindow 恢复框架位置