4

ウィンドウの下隅に2つのNSButtonがあるMacアプリケーションがあります。私はそれらAlpha = .5を.xibに設定しました。ボタンの上にマウスを置いたときに検出し、アルファを.9に変更する方法を知りたいです。どうすればよいですか?私のコードから知る必要があるのは.hだけだと思います。

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

それらは私の.mで合成されます。展開対象はOSX10.6以降です。ありがとう。

編集

私は本当に何も試していません。NSTrackingAreaで何かを見たことがありますが、その使用方法については前向きではありません。さらに重要なことに、別の方法があるかどうか疑問に思っていました。すでに呼び出されているイベントなど。

4

1 に答える 1

5

NSButtonクラス(またはさらに良いNSButtonCellクラス)をサブクラス化する必要があります。

- (void)mouseEntered:(NSEvent *)theEvent;
- (void)mouseExited:(NSEvent *)theEvent;

マウスがエリアに出入りするときに呼び出されるはずです。追跡領域を再作成する必要がある場合もあります。こちらをご覧ください。

- (void)updateTrackingAreas

フェードインとフェードアウトの効果については、たとえばアニメーターとアルファ値で遊んだ。

[[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 に答える