Я хочу иметь клавиатуру, на которой есть кнопка Next, Previous и Done.
Я видел это во многих приложениях.
Особенно там, где есть заполненные формы.
Я хочу добиться чего-то похожего на клавиатуру выше.
Как я могу это получить?
Я хочу иметь клавиатуру, на которой есть кнопка Next, Previous и Done.
Я видел это во многих приложениях.
Особенно там, где есть заполненные формы.
Я хочу добиться чего-то похожего на клавиатуру выше.
Как я могу это получить?
Вы найдете ответ на этот другой пост. Я проверил библиотеку iOS и inputAccessoryView UITextField именно то, что вы ищете!
Надеюсь, это поможет!
Я только что создал класс под названием BSKeyboardControls
, что упрощает добавление элементов управления на клавиатуру. Класс, инструкции и примерный код можно найти здесь, в GitHub.
Элементы управления работают для текстовых полей и текстовых представлений и оптимизированы как для 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
Идея очень проста. Вы должны добавить дополнительную панель инструментов с элементами кнопки на ней. Там есть делегат, который определяет, что будет делать эта кнопка.
https://github.com/hackiftekhar/IQKeyboardManager
Это лучший обработчик клавиатуры, который я когда-либо видел. Очень отличный способ управлять вводом текста.
Некоторые из его особенностей 1) ZERO LINE OF CODE
2) работает автоматически
3) Нет больше UIScrollView
4) Нет больше подклассов
5) Нет больше ручной работы
6) Нет больше # импорт
Это настраиваемый элемент управления, который размещается непосредственно над клавиатурой. Я думаю, что UIToolbar может быть использован для этого.
Предыдущий и следующий проходы вокруг первогоResponder of textFields и Done сделают отставку, а также скройте панель инструментов.
Чтобы соответствовать анимации клавиатуры, посмотрите этот код Я нашел или в SO: "Какова скорость анимации клавиатуры по умолчанию iPhone?"
Я создал репозиторий с реализацией этой функции, которая работает на iPhone/iPad во всех ориентациях и настраивается.
Как упоминалось в других ответах, это inputAccessoryView
, который вы ищете.
Я хотел бы добавить альтернативный путь здесь, используя эти cocoapods:
pod 'UITextField-Navigation'
Все UITextField
будут иметь два дополнительных свойства: nextTextField
и previousTextField
. Затем вы можете просто подключить nextTextField
в построителе интерфейса, а кнопки "Предыдущий", "Далее" и "Готово" будут добавлены автоматически для вас, все функциональные, больше не требуется кода, нет подкласса.
Вы также можете настроить пользовательский интерфейс, добавить другие кнопки и т.д., как вы хотите.