NSPageController,如果在 animator() 中使用了 selectedIndex,则 autoresizingMask 无效
NSPageController, If selectedIndex is used at animator(), autoresizingMask has no effect
如果在 animator() 中使用了 selectedIndex,则 autoresizingMask 无效。
如果你不使用 animator(),你很好。
无法使用 animator() 手动执行 selectedIndex。
知道的请告诉我
- self.animator().selectedIndex = 2
- self.selectedIndex = 2
来源
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()
}
}
谢谢。完成了。
@IBAction func moveThreePage(_ sender: Any) {
//To animate a selectedIndex change:
NSAnimationContext.runAnimationGroup({ context in
self.animator().selectedIndex = 2
}, completionHandler: {
self.completeTransition()
})
}
如果在 animator() 中使用了 selectedIndex,则 autoresizingMask 无效。
如果你不使用 animator(),你很好。
无法使用 animator() 手动执行 selectedIndex。
知道的请告诉我
- self.animator().selectedIndex = 2
- self.selectedIndex = 2
来源
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()
}
}
谢谢。完成了。
@IBAction func moveThreePage(_ sender: Any) {
//To animate a selectedIndex change:
NSAnimationContext.runAnimationGroup({ context in
self.animator().selectedIndex = 2
}, completionHandler: {
self.completeTransition()
})
}