8

我很困惑为什么这段代码不起作用。我有一个登录按钮,我想在用户未登录时禁用它。

我的 .h 文件中有一个 UIButton,如下所示:

   IBOutlet UIButton *myBtn;

我已经在 Interface Builder 中为这个按钮设置了一个引用出口。

在我的 .m 文件中,我尝试过:

[myBtn setEnabled: NO];

myBtn.enabled = NO;

但是这些都没有禁用我所在的条件语句中的按钮。(我想在用户成功登录时禁用登录按钮)

我可以在同一屏幕上使用另外两个按钮来执行此操作,所以我知道代码是正确的。我没有抛出任何错误,所以我认为该对象存在。在 XCode 中对 myBtn 的引用也会改变颜色,因此它似乎是一个有效的引用。

我肯定错过了什么。我在这里做错了什么?(我是一名 Windows 开发人员,在 Objective-C 方面相对较新)

4

5 回答 5

9

我觉得没问题。你在合成按钮吗?尝试

self.myBtn.enabled = NO;
于 2013-10-14T14:38:45.707 回答
8

如果您正在寻找 Swift3 解决方案

var myBtn = UIButton()
myBtn.isEnabled = true
于 2017-01-20T01:06:30.413 回答
2

您应该将按钮设置为 IBOutlet。

@property (weak, nonatomic) IBOutlet UIButton *myBtn;

这样您就可以在情节提要中连接该按钮。这可能是你的问题。

然后调用它来禁用。

[_myBtn setEnabled:NO];
于 2013-10-14T14:46:29.003 回答
1

试试这个..

.h

@property(nonatomic,retain)UIButton *myBtn;

.m

@synthesize myBtn;

然后,用[myBtn setEnabled: NO];代码替换您的[self.myBtn setEnabled: NO];代码。

于 2013-10-14T14:43:24.607 回答
1

如果您正在寻找快速代码:

var button = UIButton()
button.enabled = false //disable the button
于 2014-10-01T10:04:36.363 回答