В построителе интерфейсов у меня есть несколько видов (A, B, C) в NSStackView (вертикальная ориентация).Во время выполнения я динамически изменяю NSStackView, показывая или скрывая (isHidden) некоторые из этих встроенных представлений через наблюдатель свойства (willSet).Если приведенный ниже код действительно работает (представления показывают или скрывают соответственно), я не могу сделать это с анимацией.
var isExpanded :Bool = false {
willSet {
NSAnimationContext.beginGrouping()
NSAnimationContext.current.duration = 2.0
if newValue {
viewA.isHidden = true
viewB.isHidden = false
viewC.isHidden = true
viewD.isHidden = true
print("Popover expanded")
} else {
viewA.isHidden = false
viewB.isHidden = false
viewC.isHidden = false
viewD.isHidden = false
print("Popover contracted")
}
NSAnimationContext.endGrouping()
}
Как я понимаю, состояние isHidden не обрабатывается анимацией, но яне найти других способов сделать это.В качестве альтернативы я также попытался использовать метод addView и removeFromSuperview (вместо скрытия / отображения).Те же результаты ...
Моя проблема в том, что я в основном нахожу проблемы, связанные с iOS (UIView.animate ...), и ни о MacOS (NSView) ...
Есть идеи?
Большое спасибо за вашу помощь, Джо