人工建造:
[btnRun addTarget:self action:@selector(RunApp:) forControlEvents:UIControlEventTouchUpOutside];以编程方式构建的:如下所示?
- (void) setRunButton:(UIButton*)objectName mySelector:(NSString*)funcName myControlEvent:(NSString*) controlEvent
{
[objectName addTarget:self action:@selector(funcName) forControlEvents:controlEvent];
}发布于 2012-06-24 04:10:00
我想你需要这样的东西:
- (void)setRunButton:(UIButton *)objectName mySelector:(NSString *)action myControlEvent:(UIControlEvents)controlEvent {
[objectName addTarget:self action:NSSelectorFromString(action) forControlEvents:controlEvent];
}将选择器作为NSString传递是不寻常的,但是可以使用NSSelectorFromString()将选择器的字符串名称转换为选择器。
控件事件参数不是字符串,而是枚举,因此我已经将myControlEvent参数更改为具有UIControlEvents类型。
使用@selector(action)将选择器传递给方法更为常见。但是,@selector是在编译时处理的,因此参数实际上不是NSString。在这种情况下,该方法如下所示:
- (void)setRunButton:(UIButton *)objectName mySelector:(SEL)action myControlEvent:(UIControlEvents)controlEvent {
[objectName addTarget:self action:action forControlEvents:controlEvent];
}发布于 2012-06-24 04:07:27
将整个选择器作为参数传递
- (void) setRunButton:(UIButton*)objectName mySelector:(SEL)action myControlEvent:(NSString*) controlEvent
{
[objectName addTarget:self action:action forControlEvents:controlEvent];
}https://stackoverflow.com/questions/11174858
复制相似问题