我想添加多个方法,在按下按钮时作为选择器响应 . 按下按钮时,一个按钮可以有两个被调用的方法吗?
通过我的研究,我发现,在Objective-C Programming Language Guide中,一个按钮将调用所有方法与选择器同名 .
我希望我的按钮可以同时执行两个操作:
-
播放音频文件
-
在数组中显示视图 .
UIBarButtonItem * play = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(play :)];
欣赏建议 .
谢谢
3 回答
@selector()
字面上只返回一个SEL值,这只是一个名称(实际上,它在引擎盖下,它指定了任何特定的行为 . 类选择当它们被发送选择器时如何响应 .你当然可以有一个类实现一个方法来完成两件事,并将该方法的选择器设置为一个控件的动作:
您还可以通过重复调用
addTarget:action:forControlEvents:
向控件添加多个操作:您可以为特定事件指定多个目标 - 操作对 .
每次向目标添加目标时,它都会创建一个控制对象(也称为“操作消息”)(控件对象属于UI控件类型) . 此控件对象包含名为“action selector”的选择器的名称以及需要调用此选择器的目标 . 然后,该控制对象与指定的事件绑定(注册) . 您可以将多个控件对象绑定到同一事件 . 这意味着我可以有2个目标,两个选择器绑定到同一个事件 .
例
在运行时,绑定到give事件的所有这些控制消息将被分派到适当的目标,换句话说,所有这些选择器方法将在它们各自的目标类对象上被调用 .