swift - UIControl 中的 UITextField
问题描述
我是 IOS 新手,我想弄清楚如何在 uicontrol 子类中检测文本字段的触摸?当我触摸 textField 时,什么也没有发生。
class PasswordField: UIControl {
// Public API - these properties are used to fetch the final password and strength values
private var textField: UITextField = UITextField()
func setup() {
isUserInteractionEnabled = true
// Setup TextField
addSubview(textField)
textField.delegate = self
textField.translatesAutoresizingMaskIntoConstraints = false
textField.backgroundColor = .brown
textField.placeholder = "Password"
textField.layer.borderWidth = 2.0
textField.layer.borderColor = textFieldBorderColor.cgColor
textField.layer.cornerRadius = 5
textField.isUserInteractionEnabled = true
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
super.beginTracking(touch, with: event)
sendActions(for: [.editingDidBegin, .editingChanged])
return true
}
}
解决方案
我要求您在发布基本内容之前阅读 Apple 文档: https ://developer.apple.com/documentation/uikit/uitextfielddelegate/1619590-textfielddidbeginediting?language=objc
告诉代理编辑在指定的文本字段中开始。
- (void)textFieldDidBeginEditing:(UITextField *)textField;
此方法通知委托指定的文本字段刚刚成为第一响应者。使用此方法更新状态信息或执行其他任务。例如,您可以使用此方法显示仅在编辑时可见的叠加视图。
委托执行此方法是可选的。
推荐阅读
- c# - 父类看不到子参数
- html - 生成自定义的静态招摇文档
- linux - 在 bash 中使用 /home/ 目录从所有用户创建菜单
- python - 光标返回
而不是返回对象本身 - go - golang 对 localhost 的处理
- javascript - 发送 cognito 身份验证作为承诺给出“无法读取未定义的属性'承诺'”
- wordpress - 将数据从 Woocommerce 结帐页面发送到另一个路径
- json - 如何从 SWIFT 中的 json 对象获取 json 数组?
- pdf - ghostscript:将 PDF 转换为灰色,为文本保留纯黑色
- amazon-web-services - 删除查询使我的表越来越大