我目前正在制作一个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‘作为参数,我希望使用这个参数知道oneButton或twoButton的名称。我怎么知道?

我的数字按钮由一个button和一个label组成。
EDit
@IBAction func OneButton(_ sender: UIButton) {
pincodeLogic(sender)
}
func pincodeLogic(_ sender: UIButton) {
if let number = sender.currentTitle {
print(number)
}
}我看不见打印日志。
发布于 2019-09-17 09:44:43
您可以将发送方与按钮实例进行比较。
func pincodeLogic(_ sender: UIButton) {
switch sender {
case oneButton:
print("oneButton pressed")
case twoButton:
print("twoButton pressed")
default:
print("unknown button pressed")
}
}发布于 2019-09-17 09:30:44
如果要访问按钮操作以执行某些特定的task.Just,请在每个按钮上添加一个标记,并向所有按钮添加相同的目标。
@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)
}发布于 2019-09-17 09:45:46
若要使用发件人访问按钮中显示的标签的内容,请举一个示例:
@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)
}
}我希望我一直陪在你身边。让我知道。
https://stackoverflow.com/questions/57971295
复制相似问题