Как получить клавиатуру с помощью кнопок Next, Previous и Done? - PullRequest
64 голосов
/ 08 апреля 2011

Мне нужна клавиатура с кнопками «Далее», «Предыдущий» и «Готово».

Я видел это во многих приложениях.

Особенно там, где есть формызаполнено.

enter image description here

Я хочу добиться чего-то похожего на приведенную выше клавиатуру

Как мне это получить?

Ответы [ 8 ]

60 голосов
/ 08 апреля 2011

Вы найдете ответ на этом другом посте .Я проверил библиотеку iOS и inputAccessoryView для UITextField - это именно то, что вы ищете!

Надеюсь, это поможет!

25 голосов
/ 16 января 2012

Я только что создал класс с именем BSKeyboardControls, который позволяет очень легко добавлять элементы управления на клавиатуру.Класс, инструкции и пример кода можно найти здесь, на GitHub .

Элементы управления работают для текстовых полей и текстовых представлений и оптимизированы как для iPhone, так и для iPad.

19 голосов
/ 27 сентября 2013
-(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];

}
6 голосов
/ 10 октября 2012

У меня есть служебный класс, который в основном делает это для вас.

https://github.com/kalvish21/CustomKeyboard

Идея очень проста.Вы должны добавить дополнительную панель инструментов с элементами панели кнопок.Есть делегат, который определяет, что будет делать эта кнопка.

4 голосов
/ 21 декабря 2014

https://github.com/hackiftekhar/IQKeyboardManager

Это лучший обработчик клавиатуры, который я когда-либо видел. Отличный способ управления вводом текста.

Некоторые его особенности 1) НОЛЬ ЛИНИЯ КОДА

2) Работает автоматически

3) Нет больше UIScrollView

4) Нет больше подклассов

5) Нет больше ручной работы

6) Нет больше # импорт

1 голос
/ 08 апреля 2011

Это пользовательский элемент управления, который находится прямо над клавиатурой. Я думаю, что для этого можно использовать UIToolbar.

Предыдущий и следующий обходы первого ответчика textFields, и Done выполнит отставку, а также скроет панель инструментов.

Для соответствия анимации клавиатуры взгляните на этот код Я нашел или на SO: "Какова скорость анимации клавиатуры по умолчанию на iPhone?"

0 голосов
/ 28 июня 2016

Как уже упоминалось в других ответах, вы ищете inputAccessoryView.

Я хотел бы добавить альтернативный способ, используя следующие кокосы:

pod ' UITextField-Navigation '

Все UITextField s будут иметь два дополнительных свойства: nextTextField и previousTextField. Затем вы можете просто подключить nextTextField в Интерфейсном Разработчике, и кнопки «Предыдущий», «Следующий» и «Готово» будут добавлены автоматически для вас, все функционально, больше кода не требуется, нет подклассов.

Вы также можете настроить пользовательский интерфейс, добавить дополнительные кнопки и т. Д. По своему желанию.

enter image description here enter image description here

0 голосов
/ 28 августа 2012

Я создал репозиторий с реализацией этой функции, которая работает на iPhone / iPad во всех ориентациях и обладает широкими возможностями настройки.

...