2012-03-23 194 views
4

在我的iPad應用程序中,我有兩個文本框。一個顯示正常的默認文本字段,另一個顯示一個選擇器作爲其輸入視圖。UItextField委託不工作

問題是,一旦我使用顯示默認鍵盤的txt1,然後當我觸摸第二個textField時,txt1鍵盤仍然可見。

我也寫了[txt1 resignFirstResponder];[txt2 resignFirstResponder];,同時顯示選取器。

我檢查了txt1 IBOutlet連接和委託賦值,這些似乎是正確的。

我錯過了什麼?

+0

您可能沒有指定TXT2的正確輸入視圖屬性,這是爲什麼它顯示的鍵盤txt2 – HarshIT 2012-03-23 10:36:40

+0

你寫在哪裏'[txt1 resignFirstResponder]; &[txt2 resignFirstResponder];'? – lukya 2012-03-23 10:37:22

+0

不要寫[txt2 resignFirstResponder];對於txt2,只需更改其inputview屬性 – HarshIT 2012-03-23 10:38:14

回答

2

寫下面的代碼:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if(textField == txt1) 
    { 
     return YES; 
    } 
    else 
    { 
     return NO; // Write the code for displaying UIPickerView instead of the Keyboard. 
    } 
} 

希望這可以解決您的問題......

+0

謝謝!最後得到解決:) – JiteshW 2012-03-23 10:59:10

2

您必須實現以下方法辭職鍵盤......

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 
+0

是的,我已經實現了這種方法,但它仍然無法正常工作。 – JiteshW 2012-03-23 10:46:15

0

具有u實現了這個方法?

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 
0

在你viewDidLoad方法寫這篇文章,

txt2.inputView = pickerView; 

和其他resignFirstResponder代碼應該正確放置,通過這個敲擊txt2,你將直接獲取代碼erview而不是鍵盤。

+0

不,它仍然無法正常工作。 – JiteshW 2012-03-23 10:45:51

+0

pickerview應該在UIView中。 – HarshIT 2012-03-23 10:46:42

+0

並添加該UIView而不是選擇器直接 – HarshIT 2012-03-23 10:46:56

0

你實現的UITextFieldDelegates代表屬性在頭文件,如果沒有做到這一點,檢查

2
txt2.userInteractionEnabled = NO; 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if(textField == txt1) 
    { 
     [txt2 resignFirstResponder]; 
     // code for Hide Picker 
     return YES; 
   } 
    else { 
     // [txt2 resignFirstResponder]; 
     [txt1 resignFirstResponder]; 
     // code for go in picker 
     return YES; 
    } 
} 

for more information