同时单击两个按钮时应用程序挂起

时间:2013-12-16 02:59:07

标签: ios objective-c

问题:当我同时点击两个按钮时,我的应用程序挂起了。我的按钮是

Notification center label http://imageshack.com/a/img59/676/ob8s.png

如何解决这个问题。有一种方法可以优先考虑这些按钮。

感谢。

3 个答案:

答案 0 :(得分:5)

如果您只想将触控限制为一个按钮,请使用

[myButton setExclusiveTouch:YES];

答案 1 :(得分:1)

使用执行选择器延迟。假设您为两个按钮单击调用btnClicked:方法。

-(void) btnClicked:(id) btn {

  [NSObject cancelPreviousPerformRequestsWithTarget:self]
  [self performSelector:@selector(executeOperation:) withObject:nil afterDelay:0.05];

}

-(void) executeOperation:(id) btn {

    if(btn == btn1) {
    //operation 1
    }
    else {
    //operation 2
    }

}

答案 2 :(得分:1)

iOS应首先调用一个IBAction方法,然后调用下一个。

添加“actionInProgress”实例变量。

当用户点击按钮时,检查它是否==是。如果是,请忽略按下按钮。然后继续处理按钮操作,并在完成后设置actionInProgress = FALSE。

或者在每个IBAction方法中,您可以将另一个按钮的禁用标志设置为YES,以防止第二个按钮单击。