Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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 鼠标事件:哪个实例是哪个?(目标-C)_Objective C_Mouseevent - Fatal编程技术网

Objective c 鼠标事件:哪个实例是哪个?(目标-C)

Objective c 鼠标事件:哪个实例是哪个?(目标-C),objective-c,mouseevent,Objective C,Mouseevent,我正在学习objective-C,我需要处理鼠标按下事件 我的标题类似于: @interface TestAppDelegate : NSWindow <NSWindowDelegate> { NSWindow *window; IBOutlet NSTextField* text_box; } 界面上只有一个文本字段连接到我的文本框。在xib文件中,我将类名设置为TestAppDelegate 现在,鼠标按下事件似乎起作用了,因为我可以看到“它起作用了!”日志。但是,文本

我正在学习objective-C,我需要处理鼠标按下事件

我的标题类似于:

@interface TestAppDelegate : NSWindow <NSWindowDelegate> {
  NSWindow *window;
  IBOutlet NSTextField* text_box;
}
界面上只有一个文本字段连接到我的
文本框
。在xib文件中,我将类名设置为
TestAppDelegate

现在,鼠标按下事件似乎起作用了,因为我可以看到“它起作用了!”日志。但是,文本框不会更新,并保持为
-1

为了了解发生了什么,我添加了一个按钮,链接到

-(IBAction)scrollerChanged:(id)sender {
  [text_box setFloatValue:2.0];
}
这将正确地将我的
文本表单
更新为
2
。因此,我的解释是鼠标按下事件正在调用TestAppDelegate的另一个实例。我说得对吗?我在这里犯了什么根本性的错误吗


谢谢

看起来确实有多个
TestAppDelegate
的实例。(有一个
NSWindow
对象也是它自己的委托和应用程序委托,这有点不寻常)

猜测一下,您可能在xib中有一个
NSWindow
,您已经将类设置为
TestAppDelegate
,在xib中还有另一个通用的
NSObject
对象,它也设置为您的
TestAppDelegate

您可能只将
文本框
链接到一个实例(可能是应用程序委托
NSObject
one),而您的
NSWindow
实例是实际接收
mouseDown:
事件的实例

-(IBAction)scrollerChanged:(id)sender {
  [text_box setFloatValue:2.0];
}