簡體   English   中英

如何檢測NSButton上的鼠標懸停。 Obj-C,可可

[英]How to detect mouse hover on NSButton. Obj-C, Cocoa

我有一個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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM