ios - 两个Textfield需要执行不同事件遇到问题
巴扎黑
巴扎黑 2017-04-17 17:36:32
0
3
334
  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];
        }
    }
    
    
    
}
巴扎黑
巴扎黑

全部回复(3)
Peter_Zhu

打开PickerView的时候,执行

[self.view endEditing:YES];

你试试。

左手右手慢动作

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

[第一个textfield resignFirstResponder];

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

小葫芦

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板