4

我有一个 Mac 应用程序,在窗口的每个底角都有两个 NSButton。我已将它们设置Alpha = .5在 .xib 中。我想知道如何检测鼠标悬停在按钮上并将 alpha 更改为 0.9。我该怎么做呢?我想你需要从我的代码中知道的只是 .h。

@property (unsafe_unretained) IBOutlet NSButton *leftButton;
@property (unsafe_unretained) IBOutlet NSButton *rightButton;

这些是在我的.m中合成的。部署目标是 OS X 10.6+。谢谢。

编辑

我真的什么都没试过。我在 NSTrackingArea 上看到了一些东西,但对如何使用它并不积极,更重要的是,我想知道是否还有其他方法可以解决它。比如一个已经被调用的事件什么的。

4

1 回答 1

5

您需要子类化 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
于 2012-11-20T14:09:04.987 回答