【问题标题】:UIButton selected not working选择的 UIButton 不起作用
【发布时间】: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 没有设置为“选定”状态?

【问题讨论】:

    标签: iphone ios cocoa-touch 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!
    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2019-10-13
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    相关资源
    最近更新 更多