Objective c Cocoa-捕获特定事件
我对Cocoa编程相当陌生,对控件事件处理有疑问 我为一个按钮创建了一个“动作”,并得到一个更新的AppDelegate.m来处理这个问题Objective c Cocoa-捕获特定事件,objective-c,cocoa,events,Objective C,Cocoa,Events,我对Cocoa编程相当陌生,对控件事件处理有疑问 我为一个按钮创建了一个“动作”,并得到一个更新的AppDelegate.m来处理这个问题 - (IBAction)seedBtnPressed:(id)sender { NSString* myString = @"Hi there"; [_updateLbl setStringValue:myString]; } 运行此操作时,按“种子”按钮执行其应执行的操作-标签更新。 我的问题是:为什么我在默认情况下捕获了“按钮按下事件”,因
- (IBAction)seedBtnPressed:(id)sender {
NSString* myString = @"Hi there";
[_updateLbl setStringValue:myString];
}
运行此操作时,按“种子”按钮执行其应执行的操作-标签更新。
我的问题是:为什么我在默认情况下捕获了“按钮按下事件”,因为我看不到任何指定此事件的地方。或者,如何用动作捕捉鼠标悬停事件?我想我会为按钮创建另一个操作,但不确定如何指定此操作以仅处理“鼠标悬停”事件?抱歉,如果我在这里使用了Windows术语,我知道Cocoa对事物使用了不同的名称。
谢谢
Pete要为
NSView
获取鼠标悬停事件,您应该使用NSTrackingArea
类(假设您的目标是相对现代的OS X版本)。苹果公司在网站上提供了关于这方面的良好文档
对于另一个关于
seedBtnPressed:
触发的查询,尽管您没有指定它-您是否在Interface Builder中为按钮而不是以编程方式设置了操作?您需要对NSButton类(或者更好的是NSButtonCell类)进行子类化
当鼠标进出该区域时,应该会调用它们。您可能还需要重新创建跟踪区域,请参见此处:
- (void)updateTrackingAreas
对于淡入淡出效果,我使用了animator和alpha值,例如:
[[self animator]setAlphaValue:0.5];
谢谢rickerbh,是的,我在IB中为这个按钮创建了一个动作。谢谢anoop,这很有意义。
[[self animator]setAlphaValue:0.5];