UItextField委托不起作用

时间:2012-03-23 10:30:46

标签: iphone ipad uitextfield

在我的iPad应用程序中,我有两个文本字段。一个显示正常的默认文本字段,另一个显示选择器作为其输入视图。

问题是,一旦我使用txt1显示默认键盘,然后当我触摸第二个textField时txt1键盘保持可见。

我还在显示选择器时写了[txt1 resignFirstResponder]; [txt2 resignFirstResponder];

我检查了txt1 IBOutlet连接和委托分配,这些似乎是正确的。

我错过了什么?

6 个答案:

答案 0 :(得分:2)

你必须实现以下方法来重新签名键盘......

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

答案 1 :(得分:2)

编写以下代码:

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

希望这可以解决你的问题......

答案 2 :(得分: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

答案 3 :(得分:0)

你实现了这个方法吗?

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

答案 4 :(得分:0)

viewDidLoad方法中写下这个,

txt2.inputView = pickerView;

和其他resignFirstResponder代码应该正确放置,通过点击txt2,你将直接获得pickerview而不是Keyboard。

答案 5 :(得分:0)

是否在头文件中实现了UITextFieldDelegates的委托属性,如果不这样做并检查

相关问题