【问题标题】:NSPopover animate contentViewController change and change popover sizeNSPopover 动画 contentViewController 更改和更改弹出框大小
【发布时间】:2016-03-29 04:39:45
【问题描述】:

我正在制作一个 NSPopover,并且已经制作完成,因此我可以使用父视图控制器和我的视图控制器作为子视图控制器在具有滑动动画的视图控制器之间进行转换。效果很好,除了在我添加它之前,弹出框会自动调整为我的视图大小,但现在,弹出框卡在固定大小。

创建popover的代码:

    self.homeVC = PopoverViewController(nibName: "PopoverViewController", bundle: nil)
    self.loginVC = SignInViewController(nibName: "SignInViewController", bundle: nil)

    self.containerView.view.wantsLayer = true

    self.containerView.view.frame = self.homeVC!.view.bounds

    self.containerView.addChildViewController(self.homeVC!)

    self.containerView.view.addSubview(self.homeVC!.view)

    popover.contentViewController = self.containerView

转换视图控制器的代码:

    self.loginVC!.view.frame = self.homeVC!.view.bounds
    self.containerView.addChildViewController(self.loginVC!)

    let transition: NSViewControllerTransitionOptions = .SlideLeft

    self.containerView.transitionFromViewController(self.homeVC!, toViewController: self.loginVC!, options: transition, completionHandler: { finished in
        self.homeVC!.view.removeFromSuperview()
        self.homeVC!.removeFromParentViewController()
        self.containerView.view.bounds = self.loginVC!.view.bounds
    })

无论如何,我可以让弹出框在转换后自动调整到它应该的大小吗?

提前致谢。

【问题讨论】:

  • 如果你只是将弹出视图的框架设置为容器视图的农场呢?
  • @rocky 遗憾的是,这不是问题所在。弹出框确实匹配容器视图的大小,但不注意容器视图的子视图的大小(使用约束设置)。我发现问题是约束并修复了它。现在我用约束设置弹出框的大小。不过,谢谢你的想法。

标签: swift macos cocoa appkit nsviewcontroller


【解决方案1】:

我能够通过设置约束以使容器视图与孩子的大小相匹配,而不是显式设置框架来修复它。

【讨论】:

  • 你能详细回答一下你到底做了什么改动吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 2015-09-26
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多