Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置setHidden动画:通过Cocoa绑定在NSView上_Cocoa_Interface Builder_Core Animation_Calayer_Cocoa Bindings - Fatal编程技术网

设置setHidden动画:通过Cocoa绑定在NSView上

设置setHidden动画:通过Cocoa绑定在NSView上,cocoa,interface-builder,core-animation,calayer,cocoa-bindings,Cocoa,Interface Builder,Core Animation,Calayer,Cocoa Bindings,我目前正在对一个项目进行最后润色 很多(如果不是全部的话)UI逻辑目前都依赖于Cocoa绑定。 一些用户界面元素(标签、按钮等)定义了它们的“隐藏”绑定。当某些事件被触发时,这些元素的可见性被切换 我正在尝试设置可见性更改的动画(通过设置不透明度甚至比例的动画)。这可以通过多种方式轻松实现,可以通过设置相关的层属性、向层添加动画等。但是,由于我试图完全依赖绑定行为,因此我“无法”直接做到这一点 我尝试了一个使用层操作的实现,通过为相关元素上的键kcaonnorderin和kcaonnordero

我目前正在对一个项目进行最后润色

很多(如果不是全部的话)UI逻辑目前都依赖于Cocoa绑定。 一些用户界面元素(标签、按钮等)定义了它们的“隐藏”绑定。当某些事件被触发时,这些元素的可见性被切换

我正在尝试设置可见性更改的动画(通过设置不透明度甚至比例的动画)。这可以通过多种方式轻松实现,可以通过设置相关的层属性、向层添加动画等。但是,由于我试图完全依赖绑定行为,因此我“无法”直接做到这一点

我尝试了一个使用层操作的实现,通过为相关元素上的键
kcaonnorderin
kcaonnorderout
定义操作,但它确实不起作用,因为
setHidden:
很可能是在
NSView
上触发的,而不是
CALayer
——这是有意义的

因此,我的问题是:当Cocoa绑定调用
setHidden:
时,如何在NSView上设置
setHidden:
动画


谢谢。

设置隐藏动画将没有视觉效果,因为它处于打开或关闭状态。如果要设置可见性动画,请改用setAlpha(或层上的setOpacity)。这些值介于0.0和1.0之间。如果需要为状态信息设置隐藏标志,请调用
-performSelector:withObject:afterDelay
传递一个选择器,将隐藏值设置为动画完成后需要的值。或者,您可以为显式动画设置一个代理,以便在动画完成时回调,然后调用setHidden。

我建议您查看一下。它采用任何NSView,并可以设置帧、大小或可见性的动画

这将淡出NSView

[[someView animator] setAlphaValue:0.0f];

setHidden:
在CALayer上可以设置动画。“顺序输入/输出”(order in/out)关键帧的默认操作实际上使用CATTransition,从而使层不透明度设置动画。是。“隐藏”是可设置动画的,因为您可以更改值,但是,只有两个可能的值。核心动画在值之间插值。对于hidden,它可以是YES或NO。但听起来您希望它做的是在调用setHidden时自动触发淡入淡出动画。对吗?如果是这样的话,我想你不可能只用装订就可以做到。您可能需要编写代码。您可以尝试绑定到alpha属性并将其设置为0或1。看起来这可能会给你想要的东西,但我不确定你是如何把这些东西联系起来的。