2012-07-27 17 views
5

मैंने inputView का उपयोग uipickerview को textfield के लिए दिखाने के लिए किया था, लेकिन मैं अन्य कार्यों के लिए textfield का उपयोग करता हूं। का उपयोग textfield के लिए मैंने मानक कीबोर्ड कैसे दिखाया?प्रयुक्त इनपुट के बाद कीबोर्ड कैसे दिखाएं

textfield.inputView = pickrView; 
+0

textfield.inputView = NO; मेरे लिए काम किया –

उत्तर

10

बस

textfield.inputView = nil;

मेरे लिए काम किया

+1

आप एन के बजाय बेहतर या शून्य का उपयोग करेंगे। InputView प्रॉपर्टी UIView की अपेक्षा करती है, न कि BOOL। यद्यपि यह शून्य के रूप में काम करता है और नहीं, दोनों संख्यात्मक 0 हैं, यदि आप हाँ निर्दिष्ट करते हैं तो यह असफल हो जाएगा और क्रैश होगा। –

+0

ठीक है .. धन्यवाद! –

+3

यह मेरे साथ काम नहीं कर रहा है :( – HusseinB

0

मुझे लगता है कि इस कोड को शायद काम कर सकते हैं

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

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

के रूप में पावेल Kaljunen कहा, तुम inputView स्थापित करने के लिए केवल जरूरत है शून्य करने के लिए, लेकिन जब कीबोर्ड पहले से दिखाई दे रहा है, तो आपको पहले से इस्तीफा देना होगा सबसे पहले esponder, inputView को शून्य पर सेट करें और फिर फर्स्ट रेस्पॉन्डर फिर से बनें।

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

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

[UIView commitAnimations]; 
संबंधित मुद्दे