键盘焦点方法
键盘事件主要有两个,一个是获得焦点,一个是失去焦点。或者说一个是呼出键盘,另一个是消失键盘。
获得焦点
获取焦点的方法为becomeFirstResponder,我们可以通过调用这个方法来呼出键盘。**需要注意的是,只有支持编辑的控件才可以呼出键盘,如UITextView,UITextField;而普通的控件或UIView即使获取焦点也不会呼出键盘,如UITableView,UIButton
如果想使用webView自动获取焦点,那么一定不要忘记设置keyboardDisplayRequiresUserAction为false,否则键盘不会弹出。
失去焦点
常用的失去焦点的方法为resignFirstResponder,调用这个方法可以让当前控件失去焦点,从而使键盘落下;需要注意的是调用方法的对象必须是弹出键盘的控件本身,而不能是其父View
如果没有办法获取到获取焦点的控件本身,而必须利用其父View失去焦点的话,可以使用另一个方法endEdit,这个方法带有一个参数,为是否强制终止编辑,一般选择为YES,从而使键盘消失。
如果不是必须的话,更建议大家使用resignFirstResponder方法
键盘事件通知
iOS系统支持的常用键盘事件通知有六个,分别是
在这些事件的userInfo中会有以下几个属性,可以用于进行界面的处理。
后面三个属性用户可以根据前两个进行计算。需要注意的是在iPad上由于键盘支持浮动,需要支持UIKeyboardWillChangeFrameNotification和UIKeyboardDidChangeFrameNotification两个键盘通知。
自定义键盘
UITextView和UITextField
由于UITextView和UITextField支持属性inputView和inputAccessoryView,所以只需要把要替换键盘和工具栏的界面画好,直接进行设置尽可以了。
UIWebView
对于UIWebView的键盘处理比较麻烦,需要手动去掉accessoryView,具体的去除方法可以参考网上一些实现。
如iOS8下可以参考Remove Next / Previous buttons (inputAccessoryView) for Custom Keyboard in iOS8 WebView
就写这些吧,更多的还要在实践中具体分析使用。