2012-07-27 38 views
5

Tôi đã sử dụng inputView để hiển thị uipickerview cho số textfield của mình, nhưng tôi sử dụng cùng một textfield cho các chức năng khác. Làm thế nào tôi có thể hiển thị bàn phím tiêu chuẩn sau khi tôi sử dụng inputView cho rằng textfield?Cách hiển thị bàn phím sau khi sử dụng inputView

textfield.inputView = pickrView; 
+0

textfield.inputView = NO; làm việc cho tôi –

Trả lời

10

Chỉ

textfield.inputView = nil;

làm việc cho tôi

+1

bạn nên sử dụng nil hoặc NULL thay vì NO. Thuộc tính inputView mong đợi một UIView chứ không phải là một BOOL. Mặc dù điều này làm việc với NO vì nil và NO đều là số 0, điều này sẽ thất bại và bị lỗi nếu bạn gán YES. –

+0

Ok .. cảm ơn bạn! –

+3

nó không hoạt động với tôi :( – HusseinB

0

tôi nghĩ rằng mã này có lẽ có thể làm việc

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

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

Như Pavel Kaljunen nói, bạn chỉ cần thiết lập các inputView đến nil, nhưng khi bàn phím đã hiển thị, bạn phải từ chứcFirstR esponder đầu tiên, thiết lập inputView thành nil và sau đó trở thànhFirstResponder một lần nữa.

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

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

[UIView commitAnimations]; 
Các vấn đề liên quan