当我试过你如何使用swift设置可以输入UITextField的最大字符数?,我看到如果我使用全部10个字符,我也无法删除该字符.
我唯一能做的就是取消操作(一起删除所有字符).
有谁知道如何不阻止键盘(所以我不能添加其他字母/符号/数字,但我可以使用退格键)?
我正在给一个文本视图来推特一些字符串.
我正在应用以下方法将字符数限制为140.
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if([text isEqualToString:@"\b"]){
DLog(@"Ohoooo");
return YES;
}else if([[textView text] length] > 140){
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
除了退格不起作用的第一个条件之外,代码运行良好.假设我已达到140个字符的限制,因此该方法将给我假,用户无法插入更多字符,但在此之后,当我尝试删除某些字符时,文本视图的行为与禁用时相同.
那么问题是如何从textview.text文本视图中删除字符或重新启用文本视图.
我知道还有其他主题,但我似乎无法找到如何实现它.
我试图将UITextField限制为只有5个字符
优选字母数字和 - 和.和_
我见过这段代码
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
let maxLength = 4
let currentString: NSString = textField.text
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}
Run Code Online (Sandbox Code Playgroud)
和
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let length = count(textField.text.utf16) + count(string.utf16) - range.length
return length <= 10
}
Run Code Online (Sandbox Code Playgroud)
我只是不知道如何实际实现它或我应该换出哪个"textfield"我的自定义命名为UITextField
有没有办法在UITextField上设置最大长度?
类似于HTML输入字段中的MAXLENGTH属性.
我有一个UITextView,用户可以在textView中写入最多160个字符.如何修复UITextView的最大文本长度?
我想设置一个限制,可以在iOS应用程序中输入UITextField的字符数为25个字符.
根据这篇文章,它可以在Objective-C中完成,如下所示:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 25) ? NO : YES;
}
Run Code Online (Sandbox Code Playgroud)
如何在C#中使用Xamarin.iOS完成同样的事情?
我有UITextField以下限制 - 字符只能是数字,如下面的方法.我还想将最大字符数限制为3位数.如何修改我的方法来做到这一点?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *aCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
for (int i = 0; i < [string length]; i++) {
unichar aCharacter = [string characterAtIndex:i];
if ([aCharacterSet characterIsMember:aCharacter]) {
return YES;
}
}
NSUInteger newLength = self.textField.text.length + string.length - range.length;
return (newLength > 3) ? NO : YES;
}
Run Code Online (Sandbox Code Playgroud) 限制直接输入UITextView或UITextField的字符串的问题已在SO上解决:
但是现在使用OS 3.0复制和粘贴成为一个问题,因为上述SO问题中的解决方案不会阻止粘贴其他字符(即,您不能在使用上述解决方案配置的字段中键入超过10个字符但是您可以轻松地将100个字符粘贴到同一个字段中).
有没有办法防止直接输入字符串和粘贴字符串溢出?
我只是想知道如何限制uitextfield范围,即我有一个文本框,我输入值10位数.如果我尝试输入超过10位数,我的文本字段不应该接受这些值.为了非常简单,我想在文本字段中只输入10位数字.
我计算出这段代码,但它对我不起作用:
- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
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;
}
Run Code Online (Sandbox Code Playgroud) 如何限制UITextField中的字符数?
即如果我将其限制为10个字符,则用户将无法输入超过10个.此外,我想阻止他输入一些特殊字符,如+,=等.
我该怎么做?
uitextfield ×7
iphone ×6
ios ×5
cocoa-touch ×3
objective-c ×3
uitextview ×3
character ×2
max ×2
swift ×2
c# ×1
string ×1
xamarin ×1
xamarin.ios ×1