Kliknięcie pola tekstowego powoduje wyświetlenie klawiatury. Jak to ukryć, gdy użytkownik naciśnie klawisz powrotu?
148
Kliknięcie pola tekstowego powoduje wyświetlenie klawiatury. Jak to ukryć, gdy użytkownik naciśnie klawisz powrotu?
Odpowiedzi:
Najpierw ustaw delegata pliku dla UITextField
Następnie dodaj tę metodę do swojego kodu.
Dodaj także
self.textField.delegate = self;
źródło
W
viewDidLoad
oświadczeniu:[yourTextField setDelegate:self];
Następnie uwzględnij przesłonięcie metody delegata:
źródło
setDelegate:
przypomnienia. Zdecydowanie zapomniałem, a kod wcześniej nie działał.Spróbuj tego w Swift ,
Krok 1: Ustaw delegata jako siebie
textField
Krok 2: Dodaj to UITextFieldDelegate poniżej deklaracji klasy,
źródło
Szybko zrób tak:
Najpierw w swoim urządzeniu
ViewController
toUITextFieldDelegate
Na przykład.Teraz dodaj delegata do,
TextField
w którym chcesz odrzucić klawiaturę po dotknięciu powrotu wviewDidLoad
metodzie jak poniżej lub w miejscu, w którym ją inicjujesz. Np.Teraz dodaj tę metodę.
źródło
Spróbuj tego,
Następnie w metodzie delegata textField
źródło
set delegate of
UITextField
i over ridetextFieldShouldReturn
, w tej metodzie po prostu napisz następujące dwa wiersze:Otóż to. Przed napisaniem kodu nie zapomnij ustawić delegata a
UITextField
i ustawić typ klawisza Return na „Gotowe” w oknie właściwości (polecenie + shift + I).źródło
Możesz połączyć "Primary Action Triggered" (kliknij prawym przyciskiem na UITextField) z IBAction i możesz zrezygnować z pierwszej odpowiedzi (bez delegowania). Przykład (Swift 4):
źródło
Szybki 4
Ustaw delegata
UITextField
w widoku kontrolerafield.delegate = self
, a następnie:źródło
Jeśli chcesz ukryć klawiaturę dla określonej klawiatury, użyj opcji
[self.view resignFirstResponder];
Jeśli chcesz ukryć klawiaturę przed wyświetlaniem, użyj[self.view endEditing:true];
źródło
Użyj tego
źródło
Ok, myślę, że dla nowicjusza sytuacja może być nieco zagmatwana. Myślę, że prawidłowa odpowiedź to połączenie wszystkich powyższych, przynajmniej w Swift4.
Utwórz rozszerzenie lub użyj ViewController, w którym chcesz tego użyć, ale pamiętaj, aby zaimplementować UITextFieldDelegate. Ze względu na możliwość ponownego wykorzystania okazało się, że łatwiej jest użyć rozszerzenia:
Dodaj metodę textFieldShouldReturn (w zależności od poprzedniej opcji, w rozszerzeniu lub w ViewController)
W metodzie viewDidLoad ustaw delegata pola tekstowego na siebie
To powinno być wszystko. Teraz, po naciśnięciu powinien być nazywany.
return
textFieldShouldReturn
źródło
Zdefiniuj tę klasę, a następnie ustaw pole tekstowe tak, aby korzystało z tej klasy, a to zautomatyzuje całą ukrytą klawiaturę po automatycznym naciśnięciu klawisza return.
Następnie wszystko, co musisz zrobić w scenorysie, to ustawić pola do użycia klasy:
źródło