我有一个 UITextView,我想限制用户可以输入的字符数。我还尝试在文本字段为空时显示警告,但没有成功。
textview.h
@property (nonatomic,strong) IBOutlet UITextView *textField;
@property (nonatomic, retain) NSString *userText;
textview.m
- (IBAction)next:(id)sender {
self.userText = self.textField.text;
if ([self.textField.text length] == 0) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error!"
message:@"Enter some text"
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
}
这是文本限制方法似乎不起作用,
- (BOOL)textView:(UITextView *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if(range.length + range.location > textField.text.length)
{
return NO;
} else {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <= 70;
return (textField.text.length <= 70);
}
}
1)像这样在你的视图控制器中添加 UITextViewDelegate
@interface ViewController : UIViewController <UITextViewDelegate>
每次用户在键盘上键入一个字符时,在显示该字符之前,都会调用以下方法。这是一个方便的位置,可以测试用户正在键入的字符并禁止您想要限制的特定字符。
textView:shouldChangeCharactersInRange:replacementString
2)然后编写以下代码。
您可以输入任何您想要的数字,而不是 140。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
return textView.text.length + (text.length - range.length) <= 140;
}
如需更多帮助,请查看UI文本视图 http://code.tutsplus.com/tutorials/ios-sdk-uitextview-uitextviewdelegate--mobile-11210
斯威夫特2.0解决方案
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
return textView.text.characters.count + (text.characters.count - range.length) <= textViewLimit
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)