iOS开发过程中,我们会需要实现限制字数,也就是输入若干字以后就无法继续输入的功能,以UITextFiled为例,实现此功能只需要以下几步。
1. 在@interface中声明代理
@interface MyViewController : UIViewController <UITextFieldDelegate>
2. 设置UITextField的delegate,可以在viewDidLoad方法中实现,也可以在nib文件(或是storyboard)中实现。
textField.delegate = self;
3. 实现代理方法。
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *temp = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (temp.length > 15) {
textField.text = [temp substringToIndex:15];
return NO;
}
return YES;
}
对于UITextView,只需在UITextView的textViewDidChange:代理方法中实现这段代码即可。
iOS开发中,发现UITextView没有想UITextField中textFieldShouldReturn:这样的方法,那么要实现UITextView return键隐藏键盘,可以通过判断输入的字符是不是回车符来实现。
首先,声明要实现UITextView 的delegate。
- @interface MyViewController :UIViewController <UITextViewDelegate>
textView.delegate =self;
通常在viewDidLoad中设置此属性,或在nib(或storyboard)中。
最后,实现代理方法。
- -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text
- {
- if ([text isEqualToString:@"\n"]) {
- [textView resignFirstResponder];
- return NO;
- }
- return YES;
- }
iOS开发中,要想实现点击键盘上的return键隐藏键盘的效果的话,只需要以下几步。
我们先说UITextField return键隐藏键盘的实现,下次在说UITextView的。
首先,在@interface中声明要实现UITextField的delegate。
@interface MyViewController :UIViewController <UITextFieldDelegate>
然后, 设置 TextField的delegate (假定叫做textField):
textField.delegate =self;
通常在viewDidLoad方法中设置此属性,也可以在nib(或storyboard)文件中设置。
最后,实现UITextField的textFieldShouldReturn:代理方法。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}