2013-03-27 19 views
5

Mam UITextField, aby użytkownicy mogli wprowadzać swój adres. Mam Klawiaturę odpowiednio ustawioną na Domyślną dla tego pola.Domyślna klawiatura alfanumeryczna iPada w trybie numerycznym

Ponieważ adresy większości osób zaczynają się od numeru, chciałbym, aby był domyślny tryb numeryczny, tak jakby użytkownik już nacisnął klawisz.? 123. W ten sposób mogą natychmiast rozpocząć wprowadzanie liczbowej części adresu, a gdy tylko naciśnieją spację, natychmiast przejdą z powrotem do alfa.

Czy to możliwe?

+0

To fajny pomysł. Nie sądzę, aby jabłko zapewniało tę domyślną funkcjonalność, ale powinieneś spróbować ją zaimplementować. Daj nam znać, jeśli zrobisz jakiekolwiek testowanie użytkownika po i jakie były odpowiedzi użytkownika na zmieniającą się klawiaturę. –

Odpowiedz

1

Obecnie nie ma żadnych ustawień ani opcji, które to umożliwiają. Musisz to zrobić programowo, obserwując wejście spacji za pomocą powiadomień przez UITextFieldTextDidChangeNotification lub metodą delegata textField:shouldChangeCharactersInRange:replacementString:, a następnie przełączając klawiaturę.

System iOS służy do przełączania się na klawiaturę alfabetu po spacji, nawet przy użyciu UIKeyboardTypeNumbersAndPunctuation. Zostało to naprawione w wersji 5.0.

Po przełączeniu typu klawiatury dla pola, po prostu mówisz o tym, której klawiatury użyć przy następnym wyświetleniu. Jeśli klawiatura jest już wyświetlana, przełączanie typu nie powoduje jej zmiany. Ukryj klawiaturę, przełącz typ, a następnie pokaż go ponownie:

[textField1 resignFirstResponder]; 
[textField1.keyboardType = UIKeyboardTypeAlphabet]; 
[textField1 becomeFirstResponder]; 
+0

OK, zaimplementowałem metodę textField: shouldChangeCharactersInRange: replacementString: pułapkę spacji i zrobiłem [self.address setKeyboardType: UIKeyboardTypeAlphabet], ale nie zmienia ona klawiatury. –

+0

@MarkPetereit, zaktualizowałem swoją odpowiedź z instrukcjami dotyczącymi przełączania klawiatury. –

+0

Dzięki! Myślę, że to załatwi sprawę. –