Я делаю NSPopover и делаю это, поэтому я могу перейти между контроллерами представлений с помощью скользящей анимации, используя родительский контроллер представления с моими контроллерами представления в качестве дочерних. Он работает хорошо, за исключением случаев, когда я добавил это, popover автоматически изменил размер моего представления, но теперь popover застрял в фиксированном размере.NSPopover animate contentViewController change and change popover size
Код для создания поповера:
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
})
есть в любом случае, что я могу сделать поповер автоматически изменить размер до размера предполагается быть после перехода?
Заранее спасибо.
Что делать, если вы просто установите рамку представления popover в ферму вида контейнера? – rocky
@rocky К сожалению, это не проблема. Попкорн соответствует размеру вида контейнера, но не учитывает размер дочернего элемента контейнера (задается с ограничениями). Я понял, что проблема связана с ограничениями и исправлена. Теперь я установил размер popover с ограничениями. Спасибо за эту идею. – AppleBetas