Czy można programowo zmienić typ klawiatury w uitextfield, aby było możliwe coś takiego:
if(user is prompted for numeric input only)
[textField setKeyboardType: @"Number Pad"];
if(user is prompted for alphanumeric input)
[textField setKeyboardType: @"Default"];
iphone
ios
uitextfield
uikeyboard
eric.mitchell
źródło
źródło
doozy
na coś, co jest bardziej zrozumiałe. pamiętaj, że SO to strona międzynarodowa, a nie północnoamerykańskaOdpowiedzi:
Istnieje
keyboardType
nieruchomość naUITextField
:Twój kod powinien przeczytać
źródło
UITextInputTraits
protokołu, któryUITextField
przyjmuje.Warto zauważyć, że jeśli chcesz, aby aktualnie skupione pole natychmiast aktualizowało typ klawiatury, jest jeden dodatkowy krok:
Bez wywołania
reloadInputViews
klawiatura nie zmieni się, dopóki wybrane pole ( pierwsza osoba odpowiadająca ) nie straci i nie odzyska ostrości.Pełną listę
UIKeyboardType
wartości można znaleźć tutaj lub:źródło
[textField reloadInputViews];
że mi brakowało. Dzięki!reloadInputViews
działa również w przypadku niestandardowychUITextInput
wdrożeń.Tak, możesz na przykład:
źródło
To jest szybkie. Aby to działało poprawnie, musi być ustawione po
textFieldView.delegate = self
źródło
aby pole tekstowe akceptowało tylko znaki alfanumeryczne, ustaw tę właściwość
źródło
źródło
Szybki 4
Jeśli próbujesz zmienić typ klawiatury, gdy warunek jest spełniony, postępuj zgodnie z tym. Na przykład: Jeśli chcemy zmienić typ klawiatury z domyślnej na klawiaturę numeryczną, gdy liczba pól tekstowych wynosi 4 lub 5, zrób tak:
źródło
Jest do tego właściwość o nazwie
keyboardType
. Co będziemy chcieli zrobić, to wymienić, gdzie trzeba sznurki@"Number Pad
i@"Default
zUIKeyboardTypeNumberPad
iUIKeyboardTypeDefault
.Twój nowy kod powinien wyglądać mniej więcej tak:
Powodzenia!
źródło
dla osób, które chcą użyć
UIDatePicker
jako danych wejściowych:źródło
To jest
UIKeyboardTypes
dla Swift 3:Oto przykład użycia typu klawiatury z listy:
źródło
Programowo zmień typ klawiatury UITextField na Swift 3.0
źródło
Oto typ klawiatury w Swift 4.2
źródło