如何通过currentTitle检测Swift中的按钮按下

时间:2016-11-28 04:56:04

标签: ios swift uibutton swift2 boolean

我正在尝试检测按钮按下而当前标题是“取消”。按钮的原始标题是“查找”,但是一旦按下它就会变为“取消”,当标题为“取消”时,我想按下按钮时执行某些操作。

以下是代码:

@IBAction func findMachinesTapped(sender: AnyObject?) {
      //Something is done
      if error = nil{
         self.findButton.setTitle("Cancel", forState: UIControlState.Normal)
        //if self.vizoPoolButton.currentTitle == "Cancel Vizo"{
        //self.deleteRequest()
        //self.loadingNotification.hide(true)
        //}
       }else{
         self.displayAlert("Could not find anything", message: "Try again later")
      }
    }

当按钮标题变为“取消”时,注释的代码块会自动调用函数deleteRequest,而不是在按下时,标题为“取消”。

3 个答案:

答案 0 :(得分:1)

为此,您需要在selected状态添加您想要的代码default条件时检查按钮的状态。

@IBAction func buttonClicked(sender: UIButton) {
    sender.selected = !sender.selected  
    if sender.selected {
    // TITLE IS CANCEL 
    } else {
    // TITLE IS FIND
    }
}

答案 1 :(得分:0)

  • 为按钮创建IBAction方法。在方法内检查其标题并执行任何功能。

    @IBAction func buttonClicked(sender: UIButton) {
        if let text = sender.titleLabel?.text {
           if text == "Cancel" {
             // Do something
          }
       }    
    }
    

答案 2 :(得分:-2)

制作两个按钮,一个在另一个上面。启用“查找”按钮时,将“取消”按钮设置为禁用。按下查找按钮后,执行查找按钮需要执行的操作,然后禁用查找按钮并启用取消按钮。

相关问题