Cocoa - 以编程方式呈现 NSViewController,如 Storyboard中的 "Show option"(不是模态)

标签 cocoa presentviewcontroller nsviewcontroller

我正在尝试呈现一个 NSViewController,并且有 3 个可用的 API。

presentAsModalWindow()

presentAsSheet()

present(....) for popover

但我想简单地呈现,而无需 ViewController 成为模态。 我发现 Storyboard中有一个选项“显示”。如果您连接任何操作,那么它将呈现 View Controller ,并且它不会是模态的。但在代码中,我找不到类似的选项。

注意:我希望它的呈现方式应该与在没有 NewController 为模态的情况下使用presentAsModal 的方式完全相同。

最佳答案

我找到了解决方案。我们需要创建一个新窗口并嵌入新的窗口 Controller 。

    let vc = MyViewController()
    let myWindow = NSWindow(contentViewController: vc)
    myWindow.makeKeyAndOrderFront(self)
    let windowVC = NSWindowController(window: myWindow)
    windowVC.showWindow(self)

关于Cocoa - 以编程方式呈现 NSViewController,如 Storyboard中的 "Show option"(不是模态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58351813/

相关文章:

objective-c - 菜单中的 cocoa 键等效键不起作用

iphone - 如何将范围列表映射到单个值?

ios - 关闭堆栈中较低的 ViewController 并不像预期的那样表现

ios - 将 UINavigationController 呈现为模态,状态栏问题

swift - 如何让我的 NSViewController 进入另一个 ViewController 而不离开窗口?

swift - 导航到同一窗口内的不同 View Controller

cocoa - 将鼠标悬停在 View 上绘制的图像对象上

objective-c - 如何使用 Objective-C 或 MacRuby 自定义 token - Cocoa

iphone - 如何在 iOS 8 中关闭两个 UIViewController?

swift - cocoa swift : Subview not resizing with superview