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