【发布时间】:2021-04-24 20:39:04
【问题描述】:
我有一个登录屏幕,其中两个字段是密码和电子邮件文本字段。 我用stackview添加了两个文本字段。添加文本字段后,我需要添加密码锁定按钮。单击密码锁定按钮后,用户可以看到密码。我从库中取出按钮并尝试添加文本字段,但是由于stackview,它始终设置为stackview的第三个元素。所以我无法添加。 所以我决定添加文本字段的扩展名。所以我在实用程序类中成功添加了按钮, 但无法使用选择器添加操作。它显示错误
“UIViewController”类型的值没有成员“passwordAction”
我的添加按钮代码是
extension UITextField {
func passwordButton(vc:UIViewController){
let paddingView = UIView(frame: CGRect(x: 25, y: 25, width: 24, height: 17))
let passwordButton = UIButton(frame: CGRect(x: 0, y: 0, width: 24, height: 17))
passwordButton.setImage(UIImage(named: "show_password"), for: .normal)
passwordButton.addTarget(vc, action: #selector(vc.passwordAction), for: .touchUpInside)
paddingView.addSubview(passwordButton)
self.addSubview(paddingView)
}
}
class Loginviewcontroller{
passwordTextField.passwordButton(vc: self)
func passwordAction(){
print("action")
}
}
我正在从登录控制器调用此方法。
所以我有两个问题:-
- 当两个 textfield 附加到 stackview 时,我们不能在带有 storyboard 的 textfield 上放置按钮?
- 如何创建全局方法来添加按钮并添加可在 uiviewcontroller 中访问的操作?
【问题讨论】:
-
有多种方法可以做到这一点...您确定要“重新发明轮子”吗?我建议搜索
swift uitextfield show hide password,看看是否有许多现有方法中的一种适合您。 -
@user3120670:成功了吗?
标签: ios swift xcode uibutton swift5