如何让键盘上的下一个,上一个和完成button?
我想要一个键盘,其上有一个Next,Previous和Donebutton。
我在很多应用程序中看到了这一点。
特别是有填表的地方。
我想实现类似于上面的键盘
我怎么能得到这个?
你会在这个post上find答案。 我检查了iOS库,UITextField的inputAccessoryView正是你正在寻找的!
希望这可以帮助 !
我刚刚创build了一个名为BSKeyboardControls
的类,可以很容易地将控件添加到键盘。 类,指令和示例代码可以在这里findGitHub 。
该控件适用于文本字段和文本视图,并针对iPhone和iPad进行了优化。
-(BOOL)textFieldShouldBeginEditing: (UITextField *)textField { UIToolbar * keyboardToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; keyboardToolBar.barStyle = UIBarStyleDefault; [keyboardToolBar setItems: [NSArray arrayWithObjects: [[UIBarButtonItem alloc]initWithTitle:@"Previous" style:UIBarButtonItemStyleBordered target:self action:@selector(previousTextField)], [[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStyleBordered target:self action:@selector(nextTextField)], [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(resignKeyboard)], nil]]; textField.inputAccessoryView = keyboardToolBar; } - (void)nextTextField { if (textField1) { [textField1 resignFirstResponder]; [textField2 becomeFirstResponder]; } } -(void)previousTextField { if (textField2) { [textField2 resignFirstResponder]; [textField1 becomeFirstResponder]; } } -(void)resignKeyboard { [textField1 resignFirstResponder]; [textField2 resignFirstResponder]; }
我有一个实用程序类,基本上为你做这个。
https://github.com/kalvish21/CustomKeyboard
这个想法很简单。 你必须添加一个配件工具栏上的酒吧button项目。 有一个委托,它定义了那个button将会做什么。
https://github.com/asefnoor/IQKeyboardManager
这是迄今为止我见过的最好的键盘处理程序。 非常好的pipe理文本input的方式。
它的一些特点1)ZERO的代码
2)自动工作
3)没有更多的UIScrollView
4)没有更多的子类
5)没有更多的手动工作
6)没有更多的#imports
这是一个自定义控件,直接放在键盘上方。 我认为可以使用UIToolbar。
textFields和Done的firstResponder周围的上一个和下一个遍历将会执行resign以及隐藏工具栏。
要匹配键盘animation看看这个代码,我发现或在SO: “什么是iPhone的默认键盘animation率?
我已经创build了一个实现这个function的存储库 ,可以在所有方向上在iPhone / iPad上工作,并且可以高度自定义。
正如在其他答案中提到的,它是您正在寻找的inputAccessoryView
。
我想在这里添加一个替代方法,通过使用这个cocoapods:
pod'UITextField-Navigation '
所有UITextField
将有两个额外的属性: nextTextField
和previousTextField
。 然后,您可以简单地连接Interface Builder中的nextTextField
,并自动为您添加Previous,Next和Donebutton,所有function,不需要更多的代码,不需要子类。
你也可以自定义用户界面,添加更多的button等,只要你想。