嘿我想在UIControlEventTouchUpInside
听众中找到按钮。我曾经用标签来做这件事,但我现在厌倦了这一点,因为我可以通过做arg0==button
这样的事情来完成Android中的所有操作。
我将选择器设置为
[button addTarget:self action:@selector(actionUp:) forControlEvents:UIControlEventTouchUpInside];
然后在这个方法
- (IBAction)actionUp:(id)sender
{
UIButton *b = (UIButton *)sender;
if(b==button){
NSLog(@"yeeeee");
}
}
没有任何反应,两个对象b
和button
几乎相同但引用内存中的另一个地址(比如2个字符串与==相比)。
b
肯定能够按下我的按钮
[b setBackgroundImage:[UIImage imageNamed:@"image"] forState:UIControlStateNormal];
正确地按下按钮。
那我该怎么办?
编辑:粘贴错误的方法,对不起(错误仍然存在,我只是快速重命名为帖子)EDIT已解决:isEqual:为我工作。奇怪的是,重启后甚至==再次工作。我之前清理过这个项目,但是没有帮助,但是重启我的Mac确实没有。谢谢。
答案 0 :(得分:1)
你可以使用
if ([sender isEqual:button]) {
NSLog(@"yeeeee");
UIButton *b = (UIButton *)sender;
[b setBackgroundImage:[UIImage imageNamed:@"image"] forState:UIControlStateNormal];
}
答案 1 :(得分:0)
更好的
if ([sender isKindOfClass:[UIButton class]])
...