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/3/clojure/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 如何区分iAction中NSButton的鼠标单击和按键_Objective C_Xcode_Macos_Ibaction_Nsbutton - Fatal编程技术网

Objective c 如何区分iAction中NSButton的鼠标单击和按键

Objective c 如何区分iAction中NSButton的鼠标单击和按键,objective-c,xcode,macos,ibaction,nsbutton,Objective C,Xcode,Macos,Ibaction,Nsbutton,目前我有一个NSButton的iAction,NSButton也有一个密钥等价物。我想知道我的IBAction函数“strike”中是否有方法 这可以告诉我此操作是由鼠标单击按钮触发还是由按下按钮的等效键触发?使用和使用if循环检查鼠标单击次数获取当前事件 if([theEvent clickCount]>=1) { mouse clicked; } else { button pressed; } n事件。你想要一个NSEvent。您可以检查事件以查看如何调用它。但iAction默认情

目前我有一个NSButton的iAction,NSButton也有一个密钥等价物。我想知道我的IBAction函数“strike”中是否有方法


这可以告诉我此操作是由鼠标单击按钮触发还是由按下按钮的等效键触发?

使用和使用if循环检查鼠标单击次数获取当前事件

if([theEvent clickCount]>=1)
{
mouse clicked;
}
else
{
button pressed;
}

n事件。你想要一个NSEvent。您可以检查事件以查看如何调用它。但iAction默认情况下会传递发件人的id。这有助于检查动作是否总是由按钮、菜单或其他对象触发。您想完成什么?无法从发件人处获取NSEvent?我基本上在写一个小的虚拟仪器程序,我想要钥匙(NSButton)根据是由单击还是按键触发而不同地点亮。我猜sender和NSEvent是完全不同的东西…也许我会尝试另一种方法来实现相同的效果。您可以创建按钮或控件的非常薄的子类。仅添加一个事件属性,并重写keyDown和mouseDown以捕获该事件并调用super以按预期方式运行。然后,您可以询问发件人该操作是如何调用的。类别也可以工作,使您能够使用普通类
if([theEvent clickCount]>=1)
{
mouse clicked;
}
else
{
button pressed;
}