通过(id)发件人访问UIButton

jar*_*ryd 5 iphone objective-c uibutton sender

我有以下代码

-(IBAction)ATapped:(id)sender{
//want some way to hide the button which is tapped
self.hidden = YES;
}
Run Code Online (Sandbox Code Playgroud)

哪个链接到多个按钮.我想隐藏触发此IBAction的按钮.self.hidden显然不是按钮.

如何隐藏被轻敲的按钮?寄件人.

谢谢

sha*_*lla 12

弗拉基米尔和亨里克的答案都是正确的.不要让'id'类型吓到你.它仍然是你的按钮对象,只是编译器不知道类型是什么.因此,除非将其转换为特定类型(Henrik的答案),否则无法在其上引用属性.

-(IBAction)ATapped:(id)sender{
   // Possible Cast
   UIButton* myButton = (UIButton*)sender;
   myButton.hidden = YES;
}
Run Code Online (Sandbox Code Playgroud)

或者您可以在对象上发送任何消息(调用任何方法),假设您知道类型(您执行的操作,它是一个按钮),而无需投射(Vladimir的答案).

-(IBAction)ATapped:(id)sender{
   //want some way to hide the button which is tapped
   [sender setHidden:YES];
}
Run Code Online (Sandbox Code Playgroud)


Vla*_*mir 8

将setHidden消息发送给发件人:

-(IBAction)ATapped:(id)sender{
   //want some way to hide the button which is tapped
   [sender setHidden:YES];
}
Run Code Online (Sandbox Code Playgroud)