NSPageController, если selectedIndex используется в animator (), autoresizingMask не имеет никакого эффекта - PullRequest
0 голосов
/ 10 февраля 2020

Если selectedIndex используется в animator (), autoresizingMask не действует.
Если вы не используете animator (), все будет в порядке.
Невозможно сделать selectedIndex вручную с animator ().

Скажите, пожалуйста, если знаете.

  • self.animator (). SelectedIndex = 2

enter image description here enter image description here

  • self.selectedIndex = 2

enter image description here

источник

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()
    }
}

1 Ответ

0 голосов
/ 11 февраля 2020

Спасибо. это завершено.

@IBAction func moveThreePage(_ sender: Any) {
    //To animate a selectedIndex change:
    NSAnimationContext.runAnimationGroup({ context in
        self.animator().selectedIndex = 2
    }, completionHandler: {
        self.completeTransition()
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...