IOS7 UITextView 退出键盘的方式
关于UITextView 退出键盘的方式,google后找到了几个比较好的方法。
第一种方法:程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate。代码如下:
- (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *done = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leaveEditMode)] autorelease]; self.navigationItem.rightBarButtonItem = done; } - (void)textViewDidEndEditing:(UITextView *)textView { self.navigationItem.rightBarButtonItem = nil; } - (void)leaveEditMode { [self.textView resignFirstResponder]; }
第二种方法:如果UITextview里不用回车键,可以把回车键当做退出键盘的响应键。代码如下:
#pragma mark - UITextView Delegate Methods -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if ([text isEqualToString:@"\n"]) { [textView resignFirstResponder]; return NO; } return YES; }
第三种方法:在弹出的键盘上面加一个view来放置退出键盘的Done按钮。代码如下:
CGFloat profileX = x + hInterval; CGFloat profileY = y + areaLabel.frame.size.height + areaLabel.frame.origin.y + 10.0; CGFloat profileWidth = width - 2 * hInterval; CGFloat profileHeight = 200.0; UITextView *profile = [[UITextView alloc] initWithFrame:CGRectMake(profileX, profileY, profileWidth, profileHeight)]; profile.text = @"请输入简介信息"; [profile.layer setBorderColor:[[UIColor lightGrayColor] CGColor]]; [profile.layer setBorderWidth:1.0]; [profile.layer setCornerRadius:1.0]; profile.editable = YES; profile.delegate = self; [_scrollView addSubview:profile]; UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 30.0)]; [topView setBarStyle:UIBarStyleDefault]; UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; UIBarButtonItem * completeButton = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)]; NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace,completeButton,nil]; [topView setItems:buttonsArray]; [profile setInputAccessoryView:topView];
隐藏键盘的方法:
-(void)dismissKeyBoard { [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; }
可以试试吧。
参考文章:
http://blog.csdn.net/kylinbl/article/details/6694897
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/516
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 Gowhich博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/516