`

UITextView关闭键盘

    博客分类:
  • IOS
 
阅读更多
1.如果你程序是有导航条的,可以在导航条上面加多一个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];  
}  


2.如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。
代码如下:
#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;  
}  

这样无论你是使用电脑键盘上的回车键还是使用弹出键盘里的return键都可以达到退出键盘的效果。

3.第三种方法感觉效果比上面两种都好,就是在弹出的键盘上面加一个view来放置退出键盘的Done按钮。
- (void) initFeedText{
    //初始化 UITextView
    CGRect frame = CGRectMake(12, 0, 160, 88);
    textFeed = [[UITextView alloc] initWithFrame:frame];
    textFeed.delegate = self;
    textFeed.font = [UIFont fontWithName:@"TrebuchetMS" size:16];
    textFeed.backgroundColor = [UIColor clearColor];
    textFeed.autocorrectionType = UITextAutocorrectionTypeYes;
    textFeed.autocapitalizationType = UITextAutocapitalizationTypeNone;
    textFeed.keyboardType = UIKeyboardTypeDefault;
    textFeed.returnKeyType = UIReturnKeyDone;
    textFeed.delegate = self;
    
    //在弹出的键盘上面加一个view来放置退出键盘的Done按钮
    UIToolbar * topView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];  
    [topView setBarStyle:UIBarStyleDefault];
    UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];    
    NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace, doneButton, nil]; 
    [btnSpace release];
    [doneButton release];
    [topView setItems:buttonsArray];
    [textFeed setInputAccessoryView:topView];
    [topView release];
}

//关闭键盘
-(void) dismissKeyBoard{
    [textFeed resignFirstResponder];
}


推荐第三种,很好用~
分享到:
评论

相关推荐

    IOS 开发UITextView回收或关闭键盘

    接下来,我将详细介绍三种在iOS开发中实现UITextView关闭键盘的方法,以及它们的实现过程和适用场景。 方法一:使用导航条上的 Done 按钮 此方法涉及在UITextView开始编辑时,在导航条上添加一个Done按钮,而在...

    iPhone把遮罩层添加到UITextView键盘上

    在iOS应用开发中,我们经常会遇到用户在使用`UITextView`进行文字输入时,由于键盘弹出遮挡了部分屏幕内容的问题。为了提供更好的用户体验,开发者可以实现一个遮罩层来覆盖键盘,使得用户在输入时依然能清晰看到...

    ios自定义键盘附件关闭键盘

    - 为了使自定义键盘能够关闭,需要在附件按钮的点击事件处理程序中,找到当前第一响应者(通常是UITextField或UITextView)并调用其resignFirstResponder方法。例如: ```objc - (IBAction)...

    UITextView.xcodeproj.zip_xcode UITextView

    例如,设置`autocorrectionType = .no` 可关闭自动纠错。 6. **富文本支持**: `UITextView` 支持显示富文本,通过`attributedText` 属性可以设置不同样式的文本,如粗体、斜体、颜色、下划线等。 7. **插入图片...

    UITextViewDemo

    10. **用户交互反馈**:为了提供良好的用户体验,可能需要添加手势识别器来响应用户触摸事件,比如点击空白区域关闭键盘。 通过`UITextViewDemo`,开发者可以学习到如何在实际项目中灵活运用`UITextView`,特别是在...

    ios应用源码之一个比较完美的键盘控制器,包含多种键盘变化 2018127

    在iOS中,当一个UITextField或UITextView成为第一响应者时,系统会自动弹出键盘。然而,这往往会导致界面挤压,影响到用户的视图体验。键盘控制器的主要目标就是解决这个问题,提供平滑的键盘显示和隐藏动画,并且...

    UiOS开发中ITextView回收或关闭键盘使用方法总结

    本文将详细介绍几种在`UITextView`中关闭或回收键盘的方法。 **方法一:利用导航栏添加Done按钮** 如果你的应用有导航栏,可以在导航栏右侧添加一个“Done”按钮,让用户点击后关闭键盘。首先,需要实现`...

    iOS 软键盘遮挡问题 点击外部隐藏软键盘

    这样,用户可以轻松地通过键盘本身的返回键来关闭键盘,而无需触摸屏幕其他地方。 另一个解决方法是“点击外部UIView时,隐藏软键盘”。这是通过监听用户触摸事件实现的。我们可以为视图添加一个手势识别器,如...

    swift-YJKeyBoard一行代码解决iOS键盘遮挡问题

    当用户在文本框(UITextField或UITextView)中输入时,弹出的键盘有时会遮挡住部分内容,给用户带来不便。为了解决这个问题,Swift社区提供了一些优秀的解决方案,其中“YJKeyBoard”是一个小巧而强大的库,只需一行...

    ios7隐藏虚拟键盘,解决键盘挡住UITextField问题

    同时,可以在工具栏上添加“隐藏键盘”按钮,方便用户快速关闭键盘。 3. 使用`UIKeyboardFrameBeginUserInfoKey`和`UIKeyboardFrameEndUserInfoKey`: 这两个键可以获取到键盘的大小,从而计算出需要移动视图的...

    swift-CarBoard-简单实现车牌号自定义键盘

    同时,为了使自定义键盘与文本输入框关联,需要在`UITextField`或`UITextView`的`inputView`属性中设置自定义键盘实例。 总的来说,`swift-CarBoard-简单实现车牌号自定义键盘`项目是一个很好的示例,展示了如何...

    iOS简单实现隐藏键盘

    在iOS开发中,用户在与UITextField或UITextView交互时,会自动弹出系统键盘以便输入文本。然而,有时用户可能希望快速隐藏键盘以获得更好的用户体验,例如在浏览内容或者进行其他操作时。本文将详细讲解如何在iOS...

    ios-键盘上弹出控件.zip

    可以实现uitextfield的`returnKeyType`属性,设置一个“完成”键来关闭键盘,或者监听`UIKeyboardWillHideNotification`并在适当的时候调用`resignFirstResponder`方法。 7. 键盘工具栏(InputAccessoryView): ...

    自定义的View始终位于弹起键盘顶部

    标题“自定义的View始终位于弹起键盘顶部”所指的问题,是开发者希望在用户触发输入事件,例如点击文本框(UITextField或UITextView)时,自定义的视图能够保持在键盘上方可见,从而提供持续的信息展示或者操作界面...

    iphone自定义数字键盘

    在实际应用中,务必进行充分的测试,确保在不同情况下键盘的正常工作,包括输入逻辑、键盘的显示和隐藏、边缘滑动关闭键盘等。同时,关注性能优化,减少不必要的计算和内存占用。 通过以上步骤,你可以创建一个功能...

    ios应用源码之点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内

    当用户点击输入框(UITextField或UITextView)弹出键盘时,有时由于键盘遮挡,输入框会被隐藏在键盘下方,导致用户无法看到正在输入的内容。为了解决这个问题,iOS提供了多种方法来处理键盘弹出时视图的自动调整,以...

    自定义数字键盘

    3. **响应用户输入**:在点击事件处理函数中,我们需要更新与键盘交互的文本输入视图(如`UITextField`或`UITextView`)的文本内容。可以使用`insertText:`方法插入用户选择的数字。 4. **处理特殊功能**:除了数字...

    ios数字键盘添加完成按钮

    然而,系统默认的数字键盘并没有提供一个“完成”或“确定”按钮,用户需要手动点击屏幕上的“返回”键来关闭键盘,这在某些情况下可能不太方便。本文将探讨如何在iOS应用中自定义数字键盘,添加一个“完成”按钮,...

Global site tag (gtag.js) - Google Analytics