2012-07-27 14 views
5

Użyłem inputView, aby pokazać uipickerview dla mojego textfield, ale używam tego samego textfield dla innych funkcji. Jak mogę wyświetlić standardową klawiaturę po tym, jak użyłem inputView dla tego textfield?Jak wyświetlić klawiaturę po użyciu inputView

textfield.inputView = pickrView; 
+0

textfield.inputView = NIE; pracował dla mnie –

Odpowiedz

10

Wystarczy

textfield.inputView = nil;

pracował dla mnie

+1

lepiej użyć zero lub NULL zamiast NO. Właściwość inputView oczekuje UIView, a nie BOOL. Mimo że działa to z wartością NO jako zero, a wartość NO jest wartością numeryczną 0, operacja ta zakończy się niepowodzeniem i ulegnie awarii, jeśli wybierzesz opcję TAK. –

+0

Ok .. dziękuję! –

+3

to nie działa ze mną :( – HusseinB

0

myślę, że ten kod może może pracować

[textField.inputView addTarget:self action:@selector(doTest) forControlEvents:UIControlEventTouchUpInside]; 

- (void)doTest 
{ 
    if([textFiled isFirstResponder]) 
    { 
    [textFiled resignFirstResponder]; 
    } 
    else 
    { 
    [textFiled becomeFirstResponder]; 
    } 
} 
3

Jak powiedział Pavel Kaljunen, trzeba tylko ustawić inputView do zera, ale gdy klawiatura jest już widoczna, musisz zrezygnować z opcjiRirstR Najpierw spytaj, ustaw inputView na zero, a potem ponownie na FirstResponder.

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.35]; 

[yourTextField resignFirstResponder]; 
yourTextField.inputView = nil; 
[yourTextField becomeFirstResponder]; 

[UIView commitAnimations];