2011-12-12 61 views
2

我实现了一个视图,其中有两个文本字段。在第一个文本字段中,当用户点击它时,显示选择器视图。显示用户单击其他文本字段键盘时的情况。但是,当用户从第二个文本字段转到第一个文本字段时,它仍然显示键盘,并且此键盘背面有一个选取器视图。当用户从第二个文本字段移到第一个文本字段而不按下键盘完成按钮时,我无法退出此键盘。在pickerview textfield上隐藏键盘

-(void)textFieldDidBeginEditing:(UITextField *)myTextField 
    { 
    if(myTextField == firsttextfield) 
    { 
    [firsttextfield resignFirstResponder]; 
    medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)]; 
    medicinetypearray = [[NSMutableArray alloc]initWithObjects:@"Capsules",@"Eyedrops", 
    @"Eardrops",@"Nosedrops",@"Inhaler",@"Syrup",@"Injections",@"Oils",@"Ointment", nil]; 
    medicationtypepicker.delegate = self; 
    medicationtypepicker.showsSelectionIndicator = YES; 
    medicationtypepicker.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    [self.view addSubview:medicationtypepicker]; 
    } 

}

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

enter image description here

如果有一个人有想法,以消除键盘。请提供解决方案。

非常感谢Thankyou。

回答

3

这听起来像你的问题的正确解决方案是第一个文本框的inputView属性设置为选择器视图。

让您的视图控制器在呈现Medication Details屏幕时创建并配置选取器,并将该选取器分配到第一个文本字段的inputView。然后,当用户从一个字段移动到另一个字段时,键盘或选取器将自动显示,而不必与第一响应者辞职等等混在一起。

+1

110%的现货。这将用pickerView代替键盘,因此当该文本框处于活动状态时,键盘将被解除,并且您的选取器视图将处于活动状态! – theiOSDude

1

尝试告诉secondTextFieldresignFirstResponder后您确定firstTextField活跃:

-(void)textFieldDidBeginEditing:(UITextField *)myTextField 
    { 
    if(myTextField == firsttextfield) 
    { 
     [firsttextfield resignFirstResponder]; 
     [secondtextfield resignFirstResponder]; 
     medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)]; 
     .... 
     } 
    } 
+0

我已经试过了,但没有奏效。 – Nitin

+0

它看起来太明显了。试试Caleb的答案。它看起来像你想要的。 – Suz

0

检查您的文本字段的属性“退出结束”是否与“文件所有者”有关。然后使用; - (无效)textFieldDidBeginEditing:(的UITextField *)myTextField将
{ 如果(myTextField将== firsttextfield)
{
...
[secondtextfield resignFirstResponder]; ..... } }