2013-09-07 1 views
1

Мне нужно использовать тип Name Phone Keyboard (UIKeyboardTypeNamePhonePad), но с номером на панели сначала появляются, когда выбрано текстовое поле.UIKeyboardTypeNamePhonePad - Опции отображения

мне нужно вводить данные, такие как

123 - 657 - 450b - 123а

Я всегда нужно ввести номер первый, но иногда либо A/B в конце.

+0

Любое везение найти истинное решение? Мне нравится предотвращать один незамужний щелчок также – alex

+0

еще не пробовал в iOS 9. – DogCoffee

ответ

2

Вы можете попытаться изменить тип клавиатуры в зависимости от размера строки:

  • Реализовать делегат UITextFieldDelegate

Затем установите УСПЕШНОЕ TextField клавиатуры;

[textField setKeyboardType:UIKeyboardTypeNumberPad]; 
[textField setDelegate:self]; 

Тогда в следующем способе изменить клавиатуру, когда размер текста равен 3:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if([[textField text] length] > 3) 
    { 
     [textField setKeyboardType:UIKeyboardTypeDefault]; 
     [textField reloadInputViews]; 
    } 
    return YES; 
} 

Другим решением является добавление кнопки вида аксессуара (вы можете изменить клавиатуры вручную):

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    textField.keyboardType = UIKeyboardTypeNumberPad; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [button setFrame:CGRectMake(0, 0, 50, 50)]; 
    [button addTarget:self action:@selector(changeKeyboard) forControlEvents:UIControlEventTouchDown]; 
    textField.inputAccessoryView = button; 
} 

-(void)changeKeyboard 
{ 
    if([textField keyboardType] == UIKeyboardTypeNumberPad) 
    { 
     textField.keyboardType = UIKeyboardAppearanceDefault; 
    } 
    else 
    { 
     textField.keyboardType = UIKeyboardTypeNumberPad; 
    } 
    [textField reloadInputViews]; 
} 
+0

Это один из вариантов, на самом деле один кливер ... но скорее попытаюсь выяснить, чтобы получить вторичный вид, чтобы он появился первым. – DogCoffee

+0

Я понимаю, я думаю, что это невозможно, потому что вы не можете имитировать клавиатурное касание программно – Nico

+0

спасибо nico. возможно, я могу установить клавиатуру с цифровыми клавиатурами - пустую нижнюю левую кнопку, чтобы переключиться на клавиатуру по умолчанию? – DogCoffee

0

нажмите на текстовое поле, затем перейдите в «Скрыть» или «Показать утилиты», т.е. «Вид» (вы найдете его справа от редактора. Там вы выбираете третий вид, т. Е. Самый правильный). Затем вы нажимаете на инспектор атрибутов. В нем вы найдете меню под названием «клавиатура», которое установлено по умолчанию, но вы можете выбрать любой нужный пэд. Надеюсь, это сработает для вас.

+1

Я сделал это, и это не проблема. Я могу заставить эту клавиатуру появиться, но я хочу, чтобы вторичное (числовое) представление отображалось FIRST, а не буквы. – DogCoffee

Смежные вопросы