我有一个Mac应用程序,在窗口的每个底角有两个NSButton。我已经在 .xib 中设置了他们的Alpha = .5
。我想知道如何检测鼠标悬停在按钮上并将 alpha 更改为 .9。我该怎么做?我想你需要从我的代码中知道的只是 .h。
@property (unsafe_unretained) IBOutlet NSButton *leftButton;
@property (unsafe_unretained) IBOutlet NSButton *rightButton;
这些是在我的.m.中合成的,部署目标是OS X 10.6+。谢谢。
编辑
我真的什么都没试过。我在NSTrackingArea上看到了一些东西,但对如何使用它并不乐观,更重要的是,我想知道是否有另一种方法可以解决这个问题。例如已经调用的事件或其他内容。
你需要对NSButton类进行子类化(甚至更好的是NSButtonCell类)。
- (void)mouseEntered:(NSEvent *)theEvent;
- (void)mouseExited:(NSEvent *)theEvent;
当鼠标进入和离开该区域时,应该会调用它们。您可能还需要重新创建跟踪区域,请看这里:
- (void)updateTrackingAreas
对于淡入淡出效果,我使用了动画师和 alpha 值,例如:
[[self animator]setAlphaValue:0.9];
编辑:这只是供参考,以便您可以采取一些想法
@interface MyButton : NSButton {
- (void)mouseEntered:(NSEvent *)theEvent;
- (void)mouseExited:(NSEvent *)theEvent;
- (void)updateTrackingAreas;
@end