Цифровую клавиатуру уволить?

Всем привет,

У меня есть 2 textFeild и 1 textview.

из 2 текстовых полей одно текстовое поле требует заполнения номера. поэтому для этого я предоставил цифровую клавиатуру. я не могу отключить цифровую клавиатуру, так как я не могу выбрать любую опцию, чтобы отключить цифровую клавиатуру.

можно ли отключить цифровую клавиатуру ??

если да, то кто-нибудь может мне помочь.

привет шишир


person Shishir.bobby    schedule 29.05.2010    source источник


Ответы (3)


У вас есть 2 варианта: добавить клавиатуру возврата в клавиатуру с цифровой клавиатурой или перехватить событие, когда пользователь выбирает другое текстовое поле и убирает там цифровую клавиатуру. Вот ссылка, чтобы добавить кнопку возврата (готово) на клавиатуру с цифровой клавиатурой. Выполнено на цифровой клавиатуре

person vodkhang    schedule 29.05.2010
comment
Для справки, добавление кнопок на стандартные клавиатуры совершенно не поддерживается и может сломаться. Все реализации, которые я видел в сети, терпят неудачу в различных случаях, например, при перемещении между текстовыми полями с разными стилями или на iPad, который использует совершенно другую клавиатуру. - person Mike Weller; 29.05.2010
comment
@vodkhang, это лучший учебник для мужчин neoos.ch/news/46-development/ ...спасибо за сообщение - person Shishir.bobby; 29.05.2010
comment
хм... интересно... хотя я еще ни разу не видел, чтобы это терпело неудачу в моем приложении. Я запомню это. Спасибо - person vodkhang; 29.05.2010
comment
но еще один вопрос, как я уже упоминал, у меня есть два текстовых поля, одно из которых содержит числа, а другое может содержать символы. я реализовал код urs .. когда нажимаю числовое текстовое поле, цифровая клавиатура поднимается с кнопкой «Готово», «кнопка», но когда я нажимаю другое текстовое поле, появляется символьная клавиатура, с кнопкой «Готово» на цифровой клавиатуре все еще есть////.. .... что я должен сделать, чтобы удалить это? Большое спасибо за ссылку еще раз - person Shishir.bobby; 29.05.2010
comment
Можете ли вы проверить, вызывается ли - (void)keyboardWillShow:(NSNotification *)note { снова. Если это так, вы должны удалить наблюдателя, используя: [[NSNotificationCenter defaultCenter] removeObserver:self]; в подходящем месте - person vodkhang; 29.05.2010

Нет кнопки для закрытия цифровой клавиатуры (хотя на iPad это можно сделать). Вам нужно будет вызвать [textfield resignFirstResponder] в коде, если вы хотите сделать это самостоятельно.

person Mike Weller    schedule 29.05.2010
comment
Вопрос, Майк, какое событие позволяет узнать, что пользователь щелкнул где-то еще, кроме вашего текстового поля? Я думал, что это будет EdittingDidEnd, но, похоже, это не место для ResignFirstResponder. - person Driss Zouak; 03.04.2011

Есть еще один возможный способ. Для тех, кто ищет что-то идеальное, ответ vodkhang очень хорош. Но если вы ищете обходной путь, то textField.inputAccessoryView может оказаться полезным. Идея состоит в том, чтобы показать кнопку «Готово» в inputAccessoryView. Ниже приведен пример кода

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 60, 25)];
view.backgroundColor = [UIColor grayColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Done" forState:UIControlStateNormal];
button.frame = CGRectMake(320-60, 0, 60, 25);
[view addSubview:button];
textField.inputAccessoryView = view;

Есть несколько вещей, которые следует отметить.

  • Ширина accessoryView равна ширине экрана. Поэтому вам нужно написать код для управления внешним видом в соответствии с вашим приложением.
  • Вы можете придать любой вид вашей купольной кнопке. И здесь вам не нужно беспокоиться об изменениях дизайна Apple в клавиатуре.
person Mohammad    schedule 06.03.2013