2012-03-23 263 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