gpt4 book ai didi

ios - 向 UITextField 添加永久字符

转载 作者:可可西里 更新时间:2023-11-01 05:35:59 25 4
gpt4 key购买 nike

有没有办法将字母永久添加到用户无法删除的 UITextField 中?我想添加一个字符,用户无法删除它,但他们仍然可以在之后添加字母。

干杯,

附注这是针对 iOS 的

最佳答案

一个 UITextField 有一个委托(delegate)方法叫做 should change characters in range,这个方法基本上是问,我应该添加还是删除下一个字符?从中你可以决定你想要什么。这是一些示例代码。

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

BOOL shouldChangeCharacters = ( (textField.text.length + string.length) > 1 );
return shouldChangeCharacters;

}

这段代码的意思是,如果要添加的新字符加上当前文本大于 1,则可以进行更改,如果文本不大于 1,则我们不会进行更改...

现在,假设有人可能会尝试粘贴您的角色,此委托(delegate)方法仍会被调用,但您必须做一些事情。

if (range.location == 0) {
NSString* firstCharacter = [string substringToIndex:1];
BOOL firstCharacterIsDesiredCharacter = [firstCharacter isEqualToString:@"#"];
if ( !firstCharacterIsDesiredCharacter ) {
NSString* symbolWithText = [NSString stringWithFormat:@"#%@",text];

// ******************** \\

[textView setText:symbolWithText];
return NO;

// or we could do this

string = symbolWithText;

// ******************** \\

}

}

这两种情况,都在修改参数的值……有些人不喜欢这样做。这可能是一种糟糕的编程习惯。或者,如果您要修改它们,那么您应该先完成一些过程。

有了这个,我们只需要在他们试图替换第一个字符时运行此代码,我替换了哈希标记符号,第一个字符来自位置 0 和长度 1 的范围。所以如果范围是等于 0,然后我们运行我们的代码来修复它。此代码还考虑到他们可能会在其中粘贴特殊符号。因此,如果 UITextField 读取#work,并且他们试图复制“work”或“#work”,它会考虑这两种情况,如果散列标记是第一个字符,则完全跳过代码。

UITextField Reference

关于ios - 向 UITextField 添加永久字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19416885/

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