ios - 用字符串命名选择器

标签 ios objective-c

这个问题在这里已经有了答案:





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/

相关文章:

ios - Kudan:是否可以在检测到标记时调用函数?

objective-c - 添加叠加层后 UIImage 周围出现略微透明的白线?

ios - 如何在 iOS 编程中保持方法执行的顺序?

iphone - PBKDF2-HMAC-SHA256 Objective-C 实现

ios - NSUserDefaults setObject 崩溃

iphone - 向 UICollectionViewCell 添加圆角和阴影

android - 更改 Expo 生成的应用程序图标

objective-c - 启用 iCloud - 停止在应用程序启动时显示打开的文件?

objective-c - iOS - 合并两个不同大小的图像

ios - 如何删除已在 Xcode Storyboard中设置的约束