【发布时间】:2011-08-25 09:00:04
【问题描述】:
请告诉我如何将文本字段的范围设置为最多 6 个,最少 1 个。
【问题讨论】:
-
如果您能通过点击旁边的灰色复选标记来接受您的问题的正确答案,那就太好了。
标签: objective-c ios cocoa-touch uitextfield
请告诉我如何将文本字段的范围设置为最多 6 个,最少 1 个。
【问题讨论】:
标签: objective-c ios cocoa-touch uitextfield
将 self 设置为 textfield 的委托并实现此方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (newString.length < 1) {
// too short
} else if (newString.length > 6) {
// too long
}
return YES;
}
我建议你有一个 UILabel,它会用红色文本表示文本太短或太长。仅仅阻止用户在达到 6 个字符时输入文本字段或在他们改变主意时删除最后一个字符是非常糟糕的用户体验。
【讨论】:
实现委托方法 textField:shouldReplaceCharactersInRange:replacementString: 并让您的实现返回 NO,如果结果字符串超出您的约束。
【讨论】: