Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Cocoa-捕获特定事件_Objective C_Cocoa_Events - Fatal编程技术网

Objective c Cocoa-捕获特定事件

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]; } 运行此操作时,按“种子”按钮执行其应执行的操作-标签更新。 我的问题是:为什么我在默认情况下捕获了“按钮按下事件”,因

我对Cocoa编程相当陌生,对控件事件处理有疑问

我为一个按钮创建了一个“动作”,并得到一个更新的AppDelegate.m来处理这个问题

- (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];