NSPopover 动画 contentViewController 改变和改变弹出框大小
NSPopover animate contentViewController change and change popover size
我正在制作一个 NSPopover,并且已经制作完成,因此我可以使用父视图控制器和我的子视图控制器在具有滑动动画的视图控制器之间进行转换。它运行良好,除了在我添加它之前,弹出窗口会自动调整到我的视图大小,但现在,弹出窗口停留在固定大小。
创建弹窗的代码:
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
})
有没有办法让弹出窗口在转换后自动调整到它应该的大小?
提前致谢。
我能够修复它,而不是显式设置框架,设置约束以使容器视图匹配 child 的大小。
我正在制作一个 NSPopover,并且已经制作完成,因此我可以使用父视图控制器和我的子视图控制器在具有滑动动画的视图控制器之间进行转换。它运行良好,除了在我添加它之前,弹出窗口会自动调整到我的视图大小,但现在,弹出窗口停留在固定大小。
创建弹窗的代码:
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
})
有没有办法让弹出窗口在转换后自动调整到它应该的大小?
提前致谢。
我能够修复它,而不是显式设置框架,设置约束以使容器视图匹配 child 的大小。