如何让键盘上的下一个,上一个和完成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将有两个额外的属性: nextTextFieldpreviousTextField 。 然后,您可以简单地连接Interface Builder中的nextTextField ,并自动为您添加Previous,Next和Donebutton,所有function,不需要更多的代码,不需要子类。

你也可以自定义用户界面,添加更多的button等,只要你想。

在这里输入图像说明 在这里输入图像说明