gpt4 book ai didi

ios - 当用户在文本字段中键入 @ 符号时,有没有办法为电子邮件添加域建议

转载 作者:行者123 更新时间:2023-11-28 07:27:10 25 4
gpt4 key购买 nike

我正在处理一种实现,比如我需要在 iOS 标准键盘上方添加域(如 gmail.com、hotmail.com、yahoo.com)建议。

我试图找到添加自动更正选项卡的方法。但是,运气不好。

请告诉我如何实现它。

最佳答案

我正在为 UITextField.inputAccessoryView 使用 UIScrollView 并将按钮添加到 scrollView,如下所示:

emailBar.backgroundColor = UIColor(red: 0.952941, green: 0.952941, blue: 0.952941, alpha: 1.0)
textField.inputAccessoryView = emailBar

并为每个电子邮件提供商添加UIButton

var lastX: CGFloat = 8.0
let emailProviders = ["hotmail.com", "gmail.com", "yahoo.com", "mail.ru", "yahoo.com", "mail.ru"]
for provider in emailProviders {
let button = UIButton()
button.setTitle(provider, for: .normal)
button.setTitleColor(UIColor(red: 0.0, green: 0.286275, blue: 1.0, alpha: 1.0), for: .normal)
button.addTarget(self, action: #selector(appendEmailProvider(_:)), for: .touchUpInside)
button.titleLabel?.font = UIFont.systemFont(ofSize: 16.0, weight: .light)
button.sizeToFit()
button.frame.origin = CGPoint(x: lastX, y: 4.0)
emailBar.addSubview(button)
lastX += button.frame.width + 12.0
}
emailBar.contentSize = CGSize(width: lastX, height: 32.0)

接下来我们为 UITextField 添加事件

textField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
textField.addTarget(self, action: #selector(textFieldDidChange), for: .touchDown)

@objc func textFieldDidChange() {
guard
let selectedRange = textField.selectedTextRange,
let pos1 = textField.position(from: selectedRange.end, offset: 0),
let pos2 = textField.position(from: selectedRange.end, offset: -1),
let range = textField.textRange(from: pos1, to: pos2),
textField.text(in: range) == "@"
else {
emailBar.isHidden = true
return
}

emailBar.contentOffset.x = 0
emailBar.isHidden = false
}

@objc func appendEmailProvider(_ sender: UIButton) {
if let textRange = textField.selectedTextRange, let provider = sender.title(for: .normal) {
textField.replace(textRange, withText: provider)
}
}

关于ios - 当用户在文本字段中键入 @ 符号时,有没有办法为电子邮件添加域建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56244312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com