iOS 键盘 隐藏系统的 toolBar


有些情况下,我们可能需要隐藏键盘,但是保持输入框的编辑状态,光标不消失.
比如:在界面上加上语音输入功能.

    //1.视图取消编辑态
    [self.view endEditing:YES];

    //2.输入框取消第一响应
    if ([self.textView canResignFirstResponder]) {
        [self.textView resignFirstResponder];
    }

  以上方法, 虽然成功的隐藏键盘, 但是其原理都是通过取消输入框的第一响应实现的.而取消了输入框的响应状态, 自然光标就消失, 如果需要保持光标, 就需要用到:

    //替换输入视图(隐藏系统键盘或可使用自定义)
    _textView.inputView = [[UIView alloc] initWithFrame:CGRectZero];
    _textView.inputAccessoryView = [[UIView alloc] initWithFrame:CGRectZero];
    [_textView reloadInputViews];

    //输入视图为系统默认键盘
    _textView.inputView = nil;
    _textView.inputAccessoryView =  nil;

  使用以上方法, 在iPad + iOS 9 以上系统中, 会在键盘上方出现toolbar无法取消的情况: 

 

这时候需要用到:

   // iPad + iOS > 9.0 取消键盘上的toolbar
    if ([iOSVersion floatValue] >= 9.0 ) {

        UITextInputAssistantItem* item = [_textView inputAssistantItem];
        item.leadingBarButtonGroups = @[];
        item.trailingBarButtonGroups = @[];
    }

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM