我有以下代码访问的UIButton由(ID)发送方
-(IBAction)ATapped:(id)sender{
//want some way to hide the button which is tapped
self.hidden = YES;
}
链接到多个按钮。我想隐藏触发这个IBAction的按钮。 self.hidden显然不是按钮。
如何隐藏被点击的按钮?发件人。
感谢
我有以下代码访问的UIButton由(ID)发送方
-(IBAction)ATapped:(id)sender{
//want some way to hide the button which is tapped
self.hidden = YES;
}
链接到多个按钮。我想隐藏触发这个IBAction的按钮。 self.hidden显然不是按钮。
如何隐藏被点击的按钮?发件人。
感谢
发送setHidden消息发送者:
-(IBAction)ATapped:(id)sender{
//want some way to hide the button which is tapped
[sender setHidden:YES];
}
你获得作为参数
-(IBAction)ATapped:(id)sender{
// Possible Cast
UIButton* myButton = (UIButton*)sender;
myButton.hidden = YES;
}
两个弗拉基米尔和Henrik的答案是正确的设置按钮对象(ID)。不要让'id'类型吓到你。它仍然是你的按钮对象,只是编译器不知道类型是什么。因此,除非将其转换为特定类型(Henrik的回答),否则您无法在其上引用属性。
-(IBAction)ATapped:(id)sender{
// Possible Cast
UIButton* myButton = (UIButton*)sender;
myButton.hidden = YES;
}
或者您也可以发送任何消息(调用任何方法)的对象,假设你知道的类型(你做什么,这是一个按钮),而无需进行转换(弗拉基米尔的答案)。如果你想改变一个按钮的backgroundColor,正确的代码会是这样
-(IBAction)ATapped:(id)sender{
// Secure Cast of sender to UIButton
if ([sender isKindOfClass:[UIButton class]]) {
UIButton* myButton = (UIButton*)sender;
myButton.hidden = YES;
}
}
这两种方法都可以抛出一个错误:我的方法可以抛出一个Casting Error并且Vladimirs方法可以抛出一个消息错误 – 2010-11-06 13:41:52
如果你想防弹投/短信,试试这个?
[sender setBackgroundColor:(NSColor *)redColor];
例如? ...因为它不适用于我...
我相信NSButton应该是UIButton,但是,谢谢你。 – 2012-07-03 22:43:16
而且...:
-(IBAction)ATapped:(id)sender{
//want some way to hide the button which is tapped
[sender setHidden:YES];
}
我试过sender.hidden = YES;在我发布之前。它给出了一个错误。 – jarryd 2010-11-06 13:46:55
什么错误? – Vladimir 2010-11-06 13:48:14
好了,.hidden给出了“不是结构或联合”的错误,但是[setHidden:YES]有效;) – jarryd 2010-11-06 13:52:57