gpt4 book ai didi

ios - 防止用户在文本字段内选择或移动光标

转载 作者:行者123 更新时间:2023-11-28 08:02:20 25 4
gpt4 key购买 nike

我正在创建一个电话号码格式化程序,为了不破坏我的后台格式化逻辑,我希望用户只能键入数字并删除(数字键盘),而不是在整个 UITextfield.text 用他的触摸。这也将阻止用户粘贴文本,这也是我想要阻止的。所以,简而言之,我希望用户填写电话号码,如果他/她需要更正单个字符,他/她应该删除该字符之后的所有号码,以便能够删除错误的号码。

因此,文本应该是可编辑但不可选择的(并且光标不可移动)。

我猜它可能是这个方法内部的东西。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

最佳答案

防止用户在 textField 的文本之间输入任何内容

extension ViewController : UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if range.location + range.length < (textField.text?.characters.count)! {
return false
}
else {
return true
}
}
}

上面的代码不会阻止用户输入文本字符,它只是为了解释如何防止用户编辑用户输入的文本并允许用户只在最后修改字符串

编辑:

This will also prevent the user from pasting text, which is something I want to prevent as well

为了防止用户在 textField 上粘贴任何内容,您需要子类化 textField 并覆盖 canPerformAction

override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(UIResponderStandardEditActions.paste(_:)) {
return false
}
return super.canPerformAction(action, withSender: sender)
}

关于ios - 防止用户在文本字段内选择或移动光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46302025/

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