gpt4 book ai didi

ios - UITextfield 限制汉字长度

转载 作者:行者123 更新时间:2023-11-28 20:00:30 24 4
gpt4 key购买 nike

#define MAXLENGTH 12
- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

if (textField.tag == NICKNMAE_TAG) {
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;

NSUInteger newLength = oldLength - rangeLength + replacementLength;

BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;

return newLength <= MAXLENGTH || returnKey;
}
return YES;

}

我使用这种方法来限制文本字段的长度。它在输入通常的时候起作用人物。不幸的是,它在输入汉字时不起作用。

最佳答案

当输入某些使用输入法的语言时,您的拼音输入会调用-textField: shouldChangeCharactersInRange:replacementString,当您选择汉字时,会调用此方法,遗憾的是,你无法区分这个方法是通过输入拼音还是将拼音转换为中文调用的。

因此,最好允许用户输入比您限制的更多的字符,但不允许用户提交输入。您可以看到微博是如何在用户输入提要时执行此操作的。

我找到了另一个解决方案:可以使用@property markedTextRange,通过它可以得到是否有等待汉字选择的拼音,如果有,则不限制输入的字符串长度,一旦用户将所有拼音转为汉字,你可以在你的限制下截断中文字符串。

关于ios - UITextfield 限制汉字长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380964/

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