2012-09-29 9 views
10

Mam problemy z wprowadzaniem tekstu do UITextField pod SVProgressHUD (zasadniczo UIView z przezroczystym interfejsem UIWindow na pełnym ekranie i niektórymi widokami UIView pokazującymi tekst i niestandardowym paskiem postępu).UITextField nie otrzymuje sygnału z klawiatury

Mój problem polega na tym, że UITextField wyświetla migający kursor, a klawiatura pokazuje, ale po dotknięciu klawisza nic nie jest wpisywane w polu tekstowym. Widzę tylko, że migotanie kursora przerywa normalne. Co ciekawe, klawisz powrotu (usuwania) działa (naprawdę usuwa ostatnią literę w UITextView), ale nie ma żadnego innego klucza.

używam iOS 6.

Każda pomoc będzie bardzo mile widziane.

EDYTOWANIE: Ten sam UITextField działa poprawnie, gdy nie wyświetla się SVProgressHUD. To sprawia, że ​​myślę, że ma to coś wspólnego z pierwszym respondentem, ale już próbowałem wywoływać resignFirstResponder na każdym oknie i wyglądzie SVProgressHUD i nadal nie działa.

Odpowiedz

34

W końcu znalazłem problem: Wywołanie SVProgressHUD makeKeyAndVisible po zainicjowaniu, ponieważ chce otrzymywać powiadomienia z klawiatury dla repozycjonowania. Spojrzałem w górę, co „Key Okno” faktycznie jest i okazało się:

... Kluczem okno reaguje na działania użytkownika ...

Teraz, gdy UIWindow z SVProgressHUD był keyWindow, moje inne okno, które zawierało UITextField, nie dostało danych od użytkownika.

Ostatecznie zadzwonię pod numer makeKeyWindow w oknie AppDelegate i wszystko działa poprawnie.

Mam nadzieję, że pomoże to każdemu z podobnymi problemami.

+0

Czy możemy używać makeKeyWindow i makeKeyAndVisible both.jest to, że jakikolwiek sens lub użycie – Anju

+2

Nie mam pojęcia, dlaczego ta odpowiedź nie ma już kilkuset uptów. Dzięki wielkie! –

+0

Nie wiem, dlaczego tak bardzo kłopoczę się z debugowaniem, gdy StackOverflow zawsze przychodzi. Dzięki! –

2

Czy wdrożone metody ....

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 

... odfiltrować niechciane znaki? Jeśli tak, to może jest trochę nadgorliwa z filtrowaniem?

+0

Nie używam shouldChangeCharactersInRange (w rzeczywistości jest to UITextField, przepraszam, zaktualizowałem już moje pytanie) dla pola tekstowego. Co więcej, ten sam UITextField działa dobrze, gdy nie ma powyżej pokazanego SVProgressHUD. Dziękuję za odpowiedź! –

4

moje rozwiązanie: zadzwoń pod numer resignfirstresponder, aby zamknąć klawiaturę przed wyświetleniem SVProgressHUD.

0

Dla mnie to działa.

Wprowadziłem zmiany w mojej metodzie delegacji pola tekstowego, a następnie zadziałało.

if ([textField isEqual:selectBankName]) 
{ 
    return No; 
} 
else if ([textField isEqual:enterAmountTextfield]) 
{ 
    return YES; 
} 

return NO; 
} 
  1. zestaw delegat dla tekstowym
  2. Upewnij textField userInteraction jest Enabled.And

  3. Wreszcie proszę sprawdzić metodę textfield delegata.