我已经动态创建UITextFields
了具有不同宽度和字体大小的。我知道如何限制文本的长度UITextField
,但我只能用固定的字符数来做到这一点。我需要的是动态限制字符数以适应某些UITextFields
. 我想每次输入新字符时,我都应该使用CGSize
并获取特定字体大小的文本长度,而不是将其与 UITextField 宽度进行比较,并在超出UITextField
宽度时限制字符数。不幸的是,我不确定如何启动它。有谁知道任何可以帮助我的代码片段?
问问题
4380 次
1 回答
6
您可以从以下代码开始:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *text = textField.text;
text = [text stringByReplacingCharactersInRange:range withString:string];
CGSize textSize = [text sizeWithFont:textField.font];
return (textSize.width < textField.bounds.size.width) ? YES : NO;
}
在 ios 7 之后,它将 sizeWithFont 更改为 sizeWithAttributes。
这是更改的代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *text = textField.text;
text = [text stringByReplacingCharactersInRange:range withString:string];
CGSize textSize = [text sizeWithAttributes:@{NSFontAttributeName:textField.font}];
return (textSize.width < textField.bounds.size.width) ? YES : NO;
}
于 2013-04-25T14:21:27.773 回答