インターフェイスビルダーでは、NSStackView (垂直方向) にいくつかのビュー (A、B、C) があります。実行時に、プロパティ オブザーバー (willSet) を介してこれらの埋め込みビューの一部を表示または非表示 (isHidden) にすることで、NSStackView を動的に変更します。以下のコードが実際に機能する場合 (それに応じてビューが表示または非表示になります)、アニメーションでそれを行うことはできません。
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)については何も見つけないことです...
何か案は ?
助けてくれてどうもありがとう、ジョー