Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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/4/macos/10.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 第一响应者的方法来自哪里?_Objective C_Macos_First Responder - Fatal编程技术网

Objective c 第一响应者的方法来自哪里?

Objective c 第一响应者的方法来自哪里?,objective-c,macos,first-responder,Objective C,Macos,First Responder,我在看苹果公司提供的IKImageDemo,旋转圆滑块链接到FirstResponder中的setRotation:方法。然而,项目中的所有对象似乎都没有这样的方法,而且代码仍然有效 我正在尝试将其复制到我自己的项目中,而我的第一响应者没有setRotation:方法,所以我不确定它位于何处。谷歌一直无济于事 谢谢。好吧,应用程序中的第一个响应者恰好是IKImageView的一个实例。IKImageView响应setRotation:selector(可以通过将respondsToSelecto

我在看苹果公司提供的IKImageDemo,旋转圆滑块链接到FirstResponder中的setRotation:方法。然而,项目中的所有对象似乎都没有这样的方法,而且代码仍然有效

我正在尝试将其复制到我自己的项目中,而我的第一响应者没有setRotation:方法,所以我不确定它位于何处。谷歌一直无济于事


谢谢。

好吧,应用程序中的第一个响应者恰好是IKImageView的一个实例。IKImageView响应setRotation:selector(可以通过将respondsToSelector:@selector(setRotation:)传递给IKImageView的任何实例来查看),尽管我在文档中找不到它在哪里提到setRotation:method

好吧,应用程序中的第一个响应者恰好是IKImageView的一个实例。IKImageView响应setRotation:selector(可以通过将respondsToSelector:@selector(setRotation:)传递给IKImageView的任何实例来查看),尽管我在文档中找不到它在哪里提到setRotation:method

第一响应程序方法不是魔术。当一条消息被发送给第一响应者时,会发生这样的情况:应用程序的当前第一响应者(通常是聚焦视图/控件)被询问是否实现了该方法。如果是,则调用该方法。如果没有,将询问链上的下一个响应者,依此类推,直到到达顶层(应用程序
NSApplication
实例)。对象必须实际实现调用它的方法,它不能仅仅声明它

在这种情况下,
IKImageView
-setRotation:
作为私有方法实现。这意味着该方法存在(这就是为什么IKImageView接受发送给第一响应者的消息),但它的使用未被记录或支持。苹果会使用私有方法发布一个示例,这似乎有些奇怪,但你就这样做了。当支持使用方法时,有时方法会意外地被遗漏在公共标题之外,这是肯定的,但是通常明智的做法是避免使用私有方法,除非苹果公司的人明确告诉您可以使用私有方法

您可以使用


IKImageView
有一个公共方法
-setRotationAngle:
,如果您想更改旋转,这可能是一种方法。

第一响应器方法不是魔术。当一条消息被发送给第一响应者时,会发生这样的情况:应用程序的当前第一响应者(通常是聚焦视图/控件)被询问是否实现了该方法。如果是,则调用该方法。如果没有,将询问链上的下一个响应者,依此类推,直到到达顶层(应用程序
NSApplication
实例)。对象必须实际实现调用它的方法,它不能仅仅声明它

在这种情况下,
IKImageView
-setRotation:
作为私有方法实现。这意味着该方法存在(这就是为什么IKImageView接受发送给第一响应者的消息),但它的使用未被记录或支持。苹果会使用私有方法发布一个示例,这似乎有些奇怪,但你就这样做了。当支持使用方法时,有时方法会意外地被遗漏在公共标题之外,这是肯定的,但是通常明智的做法是避免使用私有方法,除非苹果公司的人明确告诉您可以使用私有方法

您可以使用


IKImageView
有一个公共方法
-setRotationAngle:
,如果您想更改旋转,这可能是一种方法。

我找到了一种解决此问题的方法。即使在最初的Apple示例中,一旦在First Responder中删除setRotation的绑定,也无法将其放回,除非执行以下技巧:只需使用First Responder的属性检查器,并添加用户定义的操作“setRotation:”和类型“id”。现在,即使是setRotation的First Responder绑定中的黄色三角形也消失了:在Apple示例中,它也出现在我自己的IKImageView实例中。

我找到了解决此问题的方法。即使在最初的Apple示例中,一旦在First Responder中删除setRotation的绑定,也无法将其放回,除非执行以下技巧:只需使用First Responder的属性检查器,并添加用户定义的操作“setRotation:”和类型“id”。现在,即使是setRotation的First Responder绑定中的黄色三角形也消失了:在苹果的例子中,它也出现在我自己的IKImageView实例中。

我不知道为什么,但我觉得有必要对我自己的问题进行评论:“当妈妈和爸爸的Responder彼此非常相爱的时候……”好的,我很高兴从我的系统中了解到了这一点。你能提供到IKImageDemo的链接吗?我无法在我的机器上找到它,也无法在在线示例中找到它。我不知道为什么,但我觉得有必要对我自己的问题发表评论:“当妈妈和爸爸回复者彼此非常相爱的时候……”好的,我很高兴从我的系统中得到了它。你能提供一个到IKImageDemo的链接吗?我无法在我的机器上找到它,也无法在联机示例中找到它。如果它没有显示在列表中,我如何在IB中链接到它?setRotationAngle没有出现在要链接的对象列表中,可能是因为它不是一个普通函数,它是一个来自rotationAngle属性的神奇setter?当我将一个(圆形)滑块链接到这样一个方法时,它会自动将滑块的值插入到该方法中?这也是为什么在演示的firstresponder中,除了正常的“系统定义”之外,“MainMenu.nib”下还列出了一系列方法的原因吗?