-textFieldShouldBeginEditing 是针对所有 textFields 调用的,而不是在选择每个 t



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

-(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;

}

它在选择第一个文本字段时执行,遍历每个文本字段,而不是等到每个文本字段被选中。 这是一个问题,因为我想完成的是仅在选择了特定的 UITextField(出生日期)时才显示模态日历,而不是显示键盘。 正在发生的事情是,当我点击 Tab 键(在硬键盘上)时,模态日历也会为每个文本字段进行评估。

有什么办法可以防止这种情况吗?

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

与其使用标签,不如为要处理的特定文本视图创建一个IBOutlet。然后,您可以在委托回调中测试textView ==您的特殊值。

原因是它比使用标签更明确、更清晰。我的猜测是,由于某种原因,您的其他一些文本视图具有相同的标签,因此您的条件没有按照您认为的那样运行。

最新更新