64

我想要一个上面有下一个、上一个和完成按钮的键盘。

我在许多应用程序中都看到了这一点。

特别是有表格要填写的地方。

在此处输入图像描述

我想实现类似于上面键盘的东西

我怎么能得到那个?

4

8 回答 8

60

您将在另一篇文章中找到答案。我检查了 iOS 库, UITextField 的inputAccessoryView正是您要找的!

希望这可以帮助 !

于 2011-04-08T07:31:41.707 回答
25

我刚刚创建了一个名为的类BSKeyboardControls,它可以很容易地将控件添加到键盘。可以在 GitHub 上找到课程、说明和示例代码。

这些控件适用于文本字段和文本视图,并针对 iPhone 和 iPad 进行了优化。

于 2012-01-16T14:50:10.420 回答
19
-(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];

}
于 2013-09-27T14:52:23.563 回答
5

我有一个实用程序类,基本上可以为你做这件事。

https://github.com/kalvish21/CustomKeyboard

这个想法很简单。您必须添加一个带有栏按钮项目的附件工具栏。有一个代表定义了该按钮的作用。

于 2012-10-10T16:10:42.007 回答
4

https://github.com/hackiftekhar/IQKeyboardManager

这是迄今为止我见过的最好的键盘处理程序。管理文本输入的非常好的方法。

它的一些特点 1) 零代码行

2) 自动工作

3) 不再有 UIScrollView

4)没有更多的子类

5)没有更多的手工工作

6)没有更多的#imports

于 2014-12-21T15:35:51.723 回答
1

这是一个直接放置在键盘上方的自定义控件。我认为 UIToolbar 可以用于此。

上一个和下一个绕过 textFields 的 firstResponder 和 Done 将执行辞职以及隐藏工具栏。

要匹配键盘动画,请查看我找到的此代码或 SO:“iPhone 的默认键盘动画速率是多少?”

于 2011-04-08T07:23:15.003 回答
0

我创建了一个存储库,该存储库实现了此功能,可在 iPhone/iPad 上以所有方向运行且高度可定制。

于 2012-08-28T11:26:13.473 回答
0

正如其他答案中提到的,这inputAccessoryView是您正在寻找的。

我想在这里添加一种替代方式,通过使用这个 cocoapods:

pod ' UITextField-导航'

所有UITextFields 将具有两个附加属性:nextTextFieldpreviousTextField。然后,您可以nextTextField在 Interface Builder 中简单地连接,并且会自动为您添加上一个、下一个和完成按钮,所有功能,无需更多代码,无需子类化。

您还可以根据需要自定义 UI、添加更多按钮等。

在此处输入图像描述 在此处输入图像描述

于 2016-06-28T03:31:11.360 回答