BSKeyboardControls使得在键盘上方添加一个输入附件视图变得简单,允许您切换到上一个和下一个文本字段以及关闭键盘。就像iOS上的Safari中看到的那样。
使用BSKeyboardControls最容易的方法是将BSKeyboardControls/
中的文件复制到您的Xcode项目中。
BSKeyboardControls
目录无论您在哪里想要使用BSKeyboardControls,都像这样导入BSKeyboardControls.h
#import "BSKeyboardControls.h"
现在您需要设置BSKeyboardControls。这分为五个简单的步骤
下面是如何设置键盘控件的例子。以下示例假设文本字段和文本视图已在Interface Builder中设置了委托。
NSArray *fields = @[ self.textFieldUsername, self.textFieldPassword,
self.textFieldRepeatedPassword, self.textViewAbout,
self.textFieldFavoriteFood, self.textFieldFavoriteMovie,
self.textFieldFavoriteBook, self.textViewNotes];
[self setKeyboardControls:[[BSKeyboardControls alloc] initWithFields:fields]];
[self.keyboardControls setDelegate:self];
接下来,您必须设置委托方法。BSKeyboardControls需要三个委托:BSKeyboardControlsDelegate
、UITextFieldDelegate
和UITextViewDelegate
。
首先,当用户按下“完成按钮”时,您希望关闭键盘。
- (void)keyboardControlsDonePressed:(BSKeyboardControls *)keyboardControls
{
[keyboardControls.activeField resignFirstResponder];
}
然后您想让视图在字段选中时滚动。有很多种方法来做这件事,您可能需要调整。
- (void)keyboardControls:(BSKeyboardControls *)keyboardControls selectedField:(UIView *)field inDirection:(BSKeyboardControlsDirection)direction
{
UIView *view = keyboardControls.activeField.superview.superview;
[self.tableView scrollRectToVisible:view.frame animated:YES];
}
这就是BSKeyboardControlsDelegate
的全部内容。现在您想要设置UITextFieldDelegate
。唯一需要的方法是- (void)textFieldDidBeginEditing:
。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self.keyboardControls setActiveField:textField];
}
接下来,您设置UITextViewDelegate
中的- (void)textViewDidBeginEditing:
方法。这与UITextFieldDelegate
类似。
- (void)textViewDidBeginEditing:(UITextView *)textView
{
[self.keyboardControls setActiveField:textView];
}
现在您可以开始使用BSKeyboardControls了。有关如何使用BSKeyboardControls的更多信息,请参阅Example.xcodeproj
。