为所有textField调用-textFieldShouldBeginEditing,而不是在选择每个textField时调用

时间:2015-01-11 17:20:14

标签: uitextfield ios8.1 uitextfielddelegate uikeyinput

我有一个iPad应用程序(XCode 6.1,iOS 8.1.1,ARC和Storyboards)。在其中一个类(场景)中,我有这个代码:

-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField  { //  (prevents keyboard from showing)

if(textField.tag == 200) {  //  birthdate
    [self showModalCalendar:(int)textField.tag];
    return NO;  //  don't show k/b
}
else
    return YES;

}

在选择第一个textField时执行,遍历每个textField而不是等到每个textField都被选中。这是一个问题,因为我想要完成的是在选择特定的UITextField(生日)时显示模态日历 ,而不显示键盘。发生的事情是当我点击标签键(在硬键盘上)时,每个textField都会显示模态日历。

有没有办法阻止这种情况?

2 个答案:

答案 0 :(得分:2)

我的问题是IQKeyboardManager库。我从我的项目中删除了这个库,DownPicker工作正常。

答案 1 :(得分:0)

您应该为要处理的特定textView创建一个IBOutlet,而不是使用标记。然后你可以在委托回调中测试textView ==你的特殊文件。

原因是它比使用标签更明确,更清晰。我的猜测是,由于某些原因,您的其他一些文本视图具有相同的标记,因此您的条件不符合您的预期。