如何在 Swift 4 中以编程方式将 IBAction 添加到按钮?
Posted
技术标签:
【中文标题】如何在 Swift 4 中以编程方式将 IBAction 添加到按钮?【英文标题】:How do I add a IBAction to a button programmatically in Swift 4? 【发布时间】:2017-10-26 08:59:51 【问题描述】:如何以编程方式将 IBAction 添加到按钮?
button.addTarget(self, action: Selector(("buttonAction:")), for:
.touchUpInside)
func buttonAction(sender: Any)
print("test")
这给了我一个“Thread 1: signal SIGABRT”错误。
【问题讨论】:
“您在代码中删除了 Outlet/Action 连接或重命名了它(拼写错误?)。” - 不是的情况:') btn.addTarget(self, action: #selector(testFunction(_:)), for: .touchDown) swift 3.2 从技术上讲,您不会以编程方式“添加”IBAction
- “IB”代表“Interface Builder”。您要问的是如何在addTarget(action:)
调用中使用sender
。
【参考方案1】:
Swift 4 版本:
button.addTarget(self, action: #selector(action(sender:)), for: .touchUpInside)
@objc private func action(sender: Button)
print("test")
【讨论】:
感谢您的回复,是的,我以前看过这段代码。但是 Swift 对我大喊:“'#selector' 的参数指的是未暴露给 Objective-C 的实例方法 'buttonAction(sender:)' 添加 '@objc' 以将此实例方法暴露给 Objective-C " 这就是为什么会有@objc
注释
@Mofawaw 然后添加“@objc”,应该看起来像“@objc func buttonAction()”
@objc func action(sender: Button)
我不得不等待 2 分钟,而不是我的编程。 :')以上是关于如何在 Swift 4 中以编程方式将 IBAction 添加到按钮?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中以编程方式将 UILabel 对象居中?
在 Swift 4 中以编程方式将 UIImageView、UILabel 添加到 UIStackView
当 UIStepper 在 Swift 4 中以编程方式点击时如何更改 UILabel 的文本,如果它们都在 UITableViewCell 中?
当 iAd 横幅出现时,如何将视图的内容上移? (在 Swift 中以编程方式)