这个问题在这里已经有了答案:
How do I get a selector from its name?
(2 个回答)
9年前关闭。
我以编程方式制作了一个按钮,我正在向按钮添加一个操作,如下所示:
[button1 addTarget:self action:@selector(button1) forControlEvents:UIControlEventTouchUpInside];
但我想用带有格式的字符串命名选择器。我试过这样:
[b4 addTarget:self action:@selector([NSString stringWithFormat@"button%i", i]) forControlEvents:UIControlEventTouchUpInside];
当然这不起作用,但是我可以做一些类似的事情来完成这项工作吗?如果你明白我的问题..
最佳答案
这将起作用:
NSString *selName = [NSString stringWithFormat@"button%i", i];
SEL selector = NSSelectorFromString(selName);
[button1 addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
但我必须问你为什么要这样做。您是否要处理多个按钮?这可以通过所有按钮的单个选择器轻松完成。给每个按钮自己的标签。然后按钮选择器可以检查发件人的标签。
关于ios - 用字符串命名选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14963494/