Если selectedIndex используется в animator (), autoresizingMask не действует.
Если вы не используете animator (), все будет в порядке.
Невозможно сделать selectedIndex вручную с animator ().
Скажите, пожалуйста, если знаете.
- self.animator (). SelectedIndex = 2
![enter image description here](https://i.stack.imgur.com/IxIs9.png)
![enter image description here](https://i.stack.imgur.com/o89A8.gif)
источник
let array = ["page 1", "page 2", "page 3", "page 4", "page 5", "page 6"]
class PageController: NSPageController, NSPageControllerDelegate {
@IBAction func moveThreePage(_ sender: Any) {
// NG
self.animator().selectedIndex = 2
// OK
//self.selectedIndex = 2
}
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
self.arrangedObjects = array
}
func pageController(_ pageController: NSPageController, viewControllerForIdentifier identifier: String) -> NSViewController {
let vc = self.storyboard!.instantiateController(withIdentifier: "ViewController") as! ViewController
vc.view.autoresizingMask = [.height, .width]
return vc
}
func pageController(_ pageController: NSPageController, identifierFor object: Any) -> String {
return "ViewController"
}
func pageController(_ pageController: NSPageController, prepare viewController: NSViewController, with object: Any?) {
guard let item = object as? String,
let itemVC = viewController as? ViewController else {
return
}
itemVC.item = item
}
func pageControllerDidEndLiveTransition(_ pageController: NSPageController) {
self.completeTransition()
}
}