在OS X Cocoa中将NSButton添加到CALayer

时间:2013-01-23 00:12:58

标签: xcode macos cocoa core-animation calayer

我有一个包含CAlayer的图层托管视图,在这种情况下显示一个漂亮的蓝色不透明矩形。我想要做的是在图层顶部添加一个NSButton,使其位于上方,并在动画时与蓝色矩形一起移动。

到目前为止,我的尝试如下:

@interface

中的

IBOutlet NSButton* firstButton;
@implementation中的

[layer addSublayer:[firstButton layer]];
firstButton.layer.position=NSMakePoint(0, 80.);

这会成功移动屏幕上按钮的位置,但不会移动按钮的“命中目标”。

根据问here on Apple Mailing Lists的类似问题,解决方案似乎是在按钮上使用setFrameOrigin:移动NSButton。这对我来说似乎不起作用,因为它改变了显示按钮的位置以及“命中目标”。我似乎无法独立移动命中目标。

另外:我是否会以错误的方式解决这个问题?有没有更好的方法呢?

1 个答案:

答案 0 :(得分:1)

不幸的是,你不能通过操纵它们的图层来移动按钮(包括命中目标)。这非常不幸,但你必须在按钮本身的框架上使用动画代理,而不是试图直接修改图层。