ios - 两个Textfield需要执行不同事件遇到问题
巴扎黑
巴扎黑 2017-04-17 17:36:32
0
3
337
  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兩個是不彈出鍵盤的,那麼就始終不響應這兩個的鍵盤呼出請求,剩下一個只要判斷就好了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板