H5W3
当前位置:H5W3 > 其他技术问题 > 正文

两个Textfield需要执行不同事件遇到问题

  1. 在tableView上创建多个uitextfield,其中一个textfield需要显示键盘,另一个需要弹出pickerView

  2. 现在,如果先出现pickerView然后出现键盘是正常的,但是在点击显示键盘之后,再弹出pickerView,那么键盘就回遮住pickerView,请问该如何处理?

-(void)cellSelect:(JustStringTableViewCell *)target
{
   
    

    int selectRow = [[self.bookingTableView indexPathForCell:target] row] + 10000;
    
    
    for (int i = 10000; i < 10000 + self.formMutArr.count; i++) {
        if (i == selectRow) {
            if ([target.formFieldsModel.kind isEqualToString:@"datetime"]) {
                //时间日期选择
                [target.rightTextField resignFirstResponder];
                
                _pickerView = [[CustomPickerView alloc]initWithDelegete:(id)self datas:nil];
                [_pickerView pickerShow];
                
                
            }else if ([target.formFieldsModel.kind isEqualToString:@"date"]){
                //只选择日期不选择时间
                [target.rightTextField resignFirstResponder];
                _pickerView = [[CustomPickerView alloc]initWithDelegete:(id)self datas:chooseArray];
                [_pickerView pickerShow];
                
            }else if ([target.formFieldsModel.kind isEqualToString:@"select"]){
                //选择条目内容 valueContraint
                [target.rightTextField resignFirstResponder];
                _pickerView = [[CustomPickerView alloc]initWithDelegete:(id)self datas:chooseArray];
                [_pickerView pickerShow];
                
            }
            
        }else{
            UITextField *tempTextField = (UITextField *) [self viewWithTag:i];
            [tempTextField resignFirstResponder];
        }
    }
    
    
    
}

回答:

打开PickerView的时候,执行

[self.view endEditing:YES];

你试试。

回答:

一般弹出pickerView之前应先隐藏键盘。这个是最正常的交互。

[第一个textfield resignFirstResponder];

比较奇葩的交互是用picker盖住键盘,一般没人这么干。把picker贴在键盘的window上即可。

回答:

我想你应该在每个textfield的点击响应的方法里都做出要求,比如ab两个是不弹出键盘的,那么就始终不响应这两个的键盘呼出请求,剩下一个只要判断就好了

本文地址:H5W3 » 两个Textfield需要执行不同事件遇到问题

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址