首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UIButton中获取swift5名称?

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

Stack Overflow用户
提问于 2019-09-17 09:28:14
回答 3查看 1.8K关注 0票数 1

我目前正在制作一个pin-code。我想将所有函数合并到一个函数中,以便将按钮事件函数集成到一个函数中,因此我想获得UIButton的名称,但我不知道如何实现。

代码语言:javascript
复制
@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组成。

EDit

代码语言:javascript
复制
  @IBAction func OneButton(_ sender: UIButton) {

        pincodeLogic(sender)
    }

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

我看不见打印日志。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-09-17 09:44:43

您可以将发送方与按钮实例进行比较。

代码语言:javascript
复制
func pincodeLogic(_ sender: UIButton) {
    switch sender {
    case oneButton:
        print("oneButton pressed")
    case twoButton:
        print("twoButton pressed")
    default:
        print("unknown button pressed")
    }
}
票数 3
EN

Stack Overflow用户

发布于 2019-09-17 09:30:44

如果要访问按钮操作以执行某些特定的task.Just,请在每个按钮上添加一个标记,并向所有按钮添加相同的目标。

代码语言:javascript
复制
@IBAction func btnAction(_ sender: UIButton) {
switch sender.tag {
case 1:
    print("oneButton pressed")
case 2:
    print("twoButton pressed")
default:
    print("unknown button pressed")
 }
}

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

代码语言:javascript
复制
@IBAction func btnAction(_ sender: UIButton) {
   print(sender.titleLabel?.text! as! String)
}
票数 0
EN

Stack Overflow用户

发布于 2019-09-17 09:45:46

若要使用发件人访问按钮中显示的标签的内容,请举一个示例:

代码语言:javascript
复制
@IBAction func OneButton(_ sender: UIButton) {
   print(sender.titleLabel?.text)
}

所以你可以这么做:

代码语言:javascript
复制
@IBAction func OneButton(_ sender: UIButton) {

        pincodeLogic(sender)
  }

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

我希望我一直陪在你身边。让我知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57971295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档