根据标签的值禁用按钮

Posted

技术标签:

【中文标题】根据标签的值禁用按钮【英文标题】:Disable a button based on a label's value 【发布时间】:2011-09-11 22:38:25 【问题描述】:

我有一个名为labelUILabel,您可以使用两个按钮对其进行加减1。当您一直减到 0 时,我希望减号按钮停止工作。如果添加了值,我希望减号按钮再次工作。这是我用于加/减按钮的方法/代码:

- (IBAction)addButton1:(id)sender 
    [label setText:[NSString stringWithFormat:@"%d",[label.text intValue] +1]];    

加/减方法的代码相同。除了末尾的 +1 是 -1。

我试过了

- (IBAction)addButton1:(id)sender 
    int val = [label.text intValue];

    [label setText:[NSString stringWithFormat:@"%d",[label.text intValue] +1]];    

    if(val - 1 <= 0)  
        UIButton *button = (UIButton *)sender;
        [button setEnabled:NO]; 
     

【问题讨论】:

int val = [label.text intValue]; if(val - 1 @Kenny Lim 好的,我试过了。但它使 addButton: 方法在值为 = 到 -2 时停止工作。在这里我把我的代码贴在问题中,你能检查一下我是否做得正确吗?谢谢回复!! ;D 您似乎正在禁用+ 按钮,而在我看来您想禁用- 按钮 @jean-Denis Muys ha 我知道我完全明白了!谢谢回复!但是我将代码添加到- 方法中,它可以工作,如果标签为 = 0,它会停止,但是当我添加到值时,假设我们按下按钮 3 次,所以现在值 = 到 3,我再次点击- 按钮,它什么也没做,所以我怎样才能让方法启动,或者如果值不是 0 又开始工作?非常感谢! 【参考方案1】:

试试

- (IBAction)addButton:(id)sender 

    if ( [[label text] intValue] == 0) 
        [minusButton setEnabled:YES];

    [label setText:[NSString stringWithFormat:@"%d",[label.text intValue] +1]];    



- (IBAction)subButton:(id)sender 

    [label setText:[NSString stringWithFormat:@"%d",[label.text intValue] -1]];

    if ( [[label text] intValue] == 0) 
        [minusButton setEnabled:NO];


您只需要保留指向减号按钮的指针(只需创建一个IBOutlet,然后使用 IB 将其链接到该按钮)

【讨论】:

hmm... 我试过了,但仍然没有运气:(我无法在 IB 中连接插座,因为我以编程方式创建了按钮和标签。我可以用另一种方式吗?谢谢回复! 如果您以编程方式创建按钮,那就更简单了! :) 你只需要保留按钮的指针。你可能做了类似UIButton *minusButton = [[UIButton alloc] initWithFrame:...]; 的事情,不是吗?好吧,只需在你的类中创建一个UIButton *minusButton 字段,然后,当你创建按钮时,使用minusButton = ...。这样,您将保留指向按钮的指针以供以后使用(例如启用/禁用)

以上是关于根据标签的值禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章

根据 UITextField 中的值禁用按钮只能工作一次(RxSwift)

根据禁用/启用状态替换按钮文本

根据文本控件值标记和启用/禁用连续表单上的按钮

根据数据值启用/禁用按钮

如何根据带有闪亮元素的 R Markdown 文档中的条件禁用按钮?

当按钮被禁用然后点击事件调用