选择的 UIButton 不起作用

Posted

技术标签:

【中文标题】选择的 UIButton 不起作用【英文标题】:UIButton selected not working 【发布时间】:2012-08-17 06:48:04 【问题描述】:

简单,但行不通!有人可以帮忙吗?我想要的只是切换 UIButton 的选择,代码如下:

-(IBAction) buttonPressed:(id)sender 
    if ([self.mybutton isSelected]) 
        NSLog(@"selected");
        [self.mybutton setSelected:NO];
     else 
       NSLog(@"not selected");
        [self.mybutton setSelected:YES];
    
    NSLog([self.mybutton isSelected] ? @"Yes" : @"No");

尽管我按下按钮任意次数,但每次打印的内容都是“未选择”和“否”。 为什么 UIButton 没有设置为“选定”状态?

【问题讨论】:

【参考方案1】:

由于您的代码似乎是正确的,您可以通过这种方式使其更简单:

-(IBAction) buttonPressed:(UIButton *)sender 
   sender.selected = !sender.selected;

为什么您的代码不能正常工作? self.mybutton 可能是 nil(你可以检查一下)。检查您的插座连接和属性定义... 参考:发送消息不是 nil 对象,如果是简单类型则返回 nil 或默认值(0 代表 intNO 代表 BOOL 等)

【讨论】:

我不确定您回答后问题是否已被编辑,但是;如果 mybutton 为 nil,则不会调用目标方法。他不会得到 nslog。 这不是真的.. IBOutletIBAction 在通过 Interface Builder 连接它们时是不同且独立的。我敢打赌,情况完全如此——与mybutton 属性的连接不正常。 弥补我的错误。你说的对。我不是一个界面构建者,可能有人 +1 指出这一点:) +1 谢谢!这就是问题所在!多么愚蠢!我在 IB 中连接了 IBAction,但没有连接 IBOutlet!

以上是关于选择的 UIButton 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 选择的图像不起作用

自定义 UIView 类中的 UIButton 不起作用

为啥我的 UIButton 不起作用?

UIButton 子类@IBAction 不起作用

UIButton 的 isEnabled 功能不起作用

UIButton 动作不起作用