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
Cocoa 自定义NSControl目标/操作指南!_Cocoa_Class_Action_Target - Fatal编程技术网

Cocoa 自定义NSControl目标/操作指南!

Cocoa 自定义NSControl目标/操作指南!,cocoa,class,action,target,Cocoa,Class,Action,Target,我有一个自定义的NSControl,它就像一个二维滑块,你可以在视图中拖动一个控制柄。我添加了一些特定于类的方法,唯一被我覆盖的是鼠标操作和drawRect。我的问题是,我如何让it部门实施目标行动?我怎样才能使它像一个滑块一样,连续地向绑定的目标发送动作消息?到目前为止,我可以在interface builder中连接它,但没有发送任何操作。我读过很多关于sendActionOn:和sendAction:to:等方法的书,但我不知道如何使用它们。如果有人能解释一下,我肯定会明白的。-sendA

我有一个自定义的NSControl,它就像一个二维滑块,你可以在视图中拖动一个控制柄。我添加了一些特定于类的方法,唯一被我覆盖的是鼠标操作和drawRect。我的问题是,我如何让it部门实施目标行动?我怎样才能使它像一个滑块一样,连续地向绑定的目标发送动作消息?到目前为止,我可以在interface builder中连接它,但没有发送任何操作。我读过很多关于sendActionOn:和sendAction:to:等方法的书,但我不知道如何使用它们。如果有人能解释一下,我肯定会明白的。

-sendActionOn:
仅当您将NSControl子类化并实现一个单元格时才相关,而您不是


-mouseDragged:
(或者从
-mouseDragged:
调用任何方法来更改滑块位置)中,您只需调用
[[self-target]performSelector:[self-action]]

这是错误的,原因有两个。首先它忽略响应器链,其次它不作为参数传递发送器。正确的方法是
[NSApp sendAction:[self action]to:[self target]from:self]
启用ARC后,您还可以使用
性能选择器:
方法获得警告。