gpt4 book ai didi

iphone - 处理文本字段中的非 ASCII 字符 :shouldChangeCharactersInRange:replacementString:

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:27:07 24 4
gpt4 key购买 nike

我试图阻止将中文(或所有非 ascii 字符)输入到 UITextField 中。正如在其他帖子中看到的那样,我实现了 textField:shouldChangeCharactersInRange:replacementString:,但是当我从按下几个键后出现在键盘顶部的单词列表中输入中文单词时, textField:shouldChangeCharactersInRange:replacementString: 方法不会触发。

有什么想法吗?

最佳答案

您可以采取的解决方法是使用:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextViewTextDidChangeNotification object:nil];

然后在你的函数中:

- (void)textChanged:(NSNotification *)notification{
//remove observer
[[NSNotificationCenter defaultCenter] removeObserver:self name:UITextViewTextDidChangeNotification object:nil];

//change your textfield's value here e.g.
myTextField.text = [MyUtils removeNonAsciiChar:myTextField.text];

//add observer again
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextViewTextDidChangeNotification object:nil];
}

但是请注意,这样做的成本更高,因为您每次都将替换整个字符串,但如果您不希望字符串很长,这应该没问题。

关于iphone - 处理文本字段中的非 ASCII 字符 :shouldChangeCharactersInRange:replacementString:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4714195/

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