IQKeyboardManager

第三方库的简单使用与学习

2016-05-05 | 阅读

IQkeyboardManager

提供以下属性供设置:

  • enable : 是否可用,可以针对一个ViewController在viewdidappear是设置为NO,这样就可以对特定的ViewController不启用了.
  • keyboardDistanceFromTextField : 键盘与textfield的距离,默认为10
  • preventShowingBottomBlankSpace : 避免显示底部空白,即向上滚动时,是计算键盘与textfield之间的距离的,而不是直接上滚一个键盘的高度.默认是YES.
  • enableAutoToolbar : 是否支持在键盘上方再显示一个Toolbar. 一般不会显示这个多余的工具条.
  • canAdjustTextView : 自动调整 TextView的大小,防止过大无法正常显示. 默认为NO.
  • overrideKeyboardAppearance : 是否替换textfield的keyboardAppearance.默认为No.
  • shouldResignOnTouchOutside : 在点击其他地方时,释放键盘,默认为NO. 但是这个功能是非常有用的,一般设置这个属性.
  • shouldPlayInputClicks : 点击 done或者next时,是否有响应音效.
  • shouldAdoptDefaultKeyboardAnimation : 避免默认的键盘动画,默认是YES.

next/done 按键

将 键盘上的 return按键转换为 next/done按键,最后一个键盘为done,其他都为next,点击next自动跳转到下一个textfield中.这里最后一个是指创建顺序,而不是真正的上下摆放顺序.

通过设置IQKeyboardReturnKeyHandler来实现:

在需要做此处理的ViewController中,添加属性:

@property (nonatomic,strong) IQKeyboardReturnKeyHandler *returnKeyHandler;

在界面加载完成后:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    // 启动键盘的返回键设置
    if (_returnKeyHandler == nil) { // 必须等到界面创建完成后,设置才能生效.
        self.returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];
        self.returnKeyHandler.lastTextFieldReturnKeyType = UIReturnKeyDone;
    }
 }