1

通常隐藏 UIButton 并不难,但我将其设置为 IBAction 而不是 IBOutlet。这是必要的,因为当按下按钮时,会弹出文本,但我希望按钮消失。解决办法是什么?

4

1 回答 1

0

您可能像这样声明了您的 IBAction:

- (IBAction)myButtonAction;

它应该是:

- (IBAction)myButtonAction:(id)sender;

因为那你可以在方法中做

- (IBAction)myButtonAction:(id)sender
{
    if([sender respondsToSelector:@selector(setHidden:)])
        [sender setHidden:YES];
}

所有的 IBAction 都可以支持接收它们的发送者作为一个函数。但是,如果不同的 UI 元素调用该函数,它也会被隐藏。此外,使用上述方法,您将无法取消隐藏按钮,如果您需要这样做,您可能最好使用 IBOutlet - 在 5.0+ 中,您可以使用weak不保留的关键字如果对象被销毁,引用并自动为零,在 4.x 中,您只需要记住在 viewDidUnload 上将其设置为 nil。

于 2012-07-30T19:01:42.220 回答