在objective-c中设置按钮调用方法或添加事件侦听器时,通常会将目标设置为self。但是我有一个名为NSObject
的{{1}}子类,与主文件分开。该子类有一个CALLS
,称为void
,应该执行。
第一个问题是无效的 +(无效)METHOD_NAME
或
- (无效)METHOD_NAME 在子类中。
接下来是如何设置METHOD_NAME
的目标以使用addEventListener
的子类并在其中调用方法。我会做吗?
目标:[CALLS类];
或者创建一个NSObject(调用)子类的实例,然后传递它?
答案 0 :(得分:2)
“CALLS”和“METHOD_NAME”不是类和方法的好名字。尝试遵循Objective-C约定。由于您是“nonono”,因此您可以将您的课程称为NNEventListener
和方法buttonTapped
,例如。
第一个问题:它实际上并不重要。可以使用类方法(+)和实例方法。 然而,不使用实例方法来监听UI事件是非常不寻常的,所以答案是,使用-(void)buttonTapped
第二个问题:我认为所有Cocoa中都没有一个名为addEventListener
的方法。你在哪里听到的?您之前是否使用过Web框架制作应用程序?
要向按钮(或任何其他UIControl
)添加目标,请使用-addTarget:action:forControlEvents:
要获取对要调用的方法的引用,使用特殊的@selector
指令,如下所示:
[aButton addTarget:anObject action:@selector(buttonTapped) forControlEvents:UIControlEventTouchUpInside];
aButton
- 您的按钮
anObject
- 任何对象。 self
只是该方法所属的对象。你可以传入任何对象
buttonTapped
- 点击按钮时应调用的方法的名称