ios 如何在swift5中获取UIButton名称?

bq9c1y66  于 2023-01-27  发布在  iOS
关注(0)|答案(4)|浏览(136)

我现在正在做一个pin-code,我想把所有的函数合并成一个函数,为了把按钮事件函数合并成一个,所以我想得到UIButton的名字,但是我不知道怎么做。

@IBOutlet weak var oneButton: UIButton!
@IBOutlet weak var twoButton: UIButton!
...
var pinCodeNum : String! = ""
...

  @IBAction func OneButton(_ sender: UIButton) {
        pincodeLogic(sender)
    }

    func pincodeLogic(_ sender: UIButton) {
         // I want get value is (example : 'oneButton' or 'twoButton' or 'threeButton' more )
    }

正如你在我的代码中看到的,我得到了一个' sender '作为参数,我想知道使用这个参数的oneButtontwoButton的名称,我怎么知道?

我的数字按钮由一个button和一个label组成。

编辑它

@IBAction func OneButton(_ sender: UIButton) {

        pincodeLogic(sender)
    }

    func pincodeLogic(_ sender: UIButton) {
         if let number = sender.currentTitle {
            print(number)
        }
    }

我看不到打印日志。

ldxq2e6h

ldxq2e6h1#

您可以将发送者与按钮示例进行比较。

func pincodeLogic(_ sender: UIButton) {
    switch sender {
    case oneButton:
        print("oneButton pressed")
    case twoButton:
        print("twoButton pressed")
    default:
        print("unknown button pressed")
    }
}
hi3rlvi2

hi3rlvi22#

要使用发送者访问按钮中存在的标签内容,以下是一个示例:

@IBAction func OneButton(_ sender: UIButton) {
   print(sender.titleLabel?.text)
}

你可以这样做:

@IBAction func OneButton(_ sender: UIButton) {

        pincodeLogic(sender)
  }

  func pincodeLogic(_ sender: UIButton) {
         if let number = sender.titleLabel?.text {
            print(number)
        }
  }

希望我一直在你身边。有消息通知我。

mepcadol

mepcadol3#

如果你想访问按钮动作来执行一些特定的任务。只要在你的每个按钮上放一个标签,然后给所有按钮添加相同的目标。

@IBAction func btnAction(_ sender: UIButton) {
switch sender.tag {
case 1:
    print("oneButton pressed")
case 2:
    print("twoButton pressed")
default:
    print("unknown button pressed")
 }
}

如果您只需要打印按钮标题,请执行以下操作。

@IBAction func btnAction(_ sender: UIButton) {
   print(sender.titleLabel?.text! as! String)
}
tzcvj98z

tzcvj98z4#

@IBAction func btnClick(_ sender: UIButton{
    print(sender.titleLabel!.text!)
}

相关问题