【发布时间】:2017-01-27 18:22:19
【问题描述】:
在什么情况下可可在禁用发送方的情况下调用 IBAction?
我有以下代码
- (IBAction)onMuteTap:(UIButton*)sender {
if (!sender.enabled) {
// Whatever 1
}
// Whatever 2
}
我在Whatever 1 中设置了一个断点,如果我一直按下链接按钮,有时会调用该断点。
这个if 只是为了调试,因为我假设 IBAction 永远不会被禁用的发件人调用,这似乎是一个错误的假设。
只是一个补充信息,我在另一部分代码中明确禁用了该按钮
...
muteButton.enabled = NO;
...
[编辑] 两个代码都在主线程中运行。
【问题讨论】:
-
有代码。无论 1 是任何代码。它实际上是一个 NSLog。
-
按钮看起来是否被禁用?
muteButton.enabled = NO;是否在主线程上调用?muteButton和sender是同一个地址吗? -
稍后我将关闭视图,因此很难看到。让我尽量不要关闭并查看按钮。两个代码都在主线程上运行。我会检查地址,但即使不是,发件人肯定是被禁用的。我会附上调试器的ss。
-
当您点击按钮时,它是否看起来被禁用了?禁用的按钮非常明显地被禁用(褪色的文本等)。 — 另外,您说“我稍后会忽略视图,所以很难看到” — that 是什么意思?听起来你没有为我们描述的某种手帕正在发生。
-
此后该按钮看起来已禁用(我也无法再单击它)。它看起来太像一个竞争条件,但一切都在主线程上运行......
标签: objective-c cocoa uibutton ibaction