在tableView上创建多个uitextfield,其中一个textfield需要显示键盘,另一个需要弹出pickerView
现在,如果先出现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 を開くときに、
を実行します リーリー試してみてください。
通常、pickerView をポップアップする前にキーボードを非表示にする必要があります。これは最も正常な相互作用です。
さらに奇妙なインタラクションは、キーボードをピッカーで覆うことですが、これは一般的には誰も行いません。ピッカーをキーボードウィンドウに貼り付けるだけです。
各テキストフィールドのクリック応答メソッドで要件を作成する必要があると思います。たとえば、ab と ab はキーボードをポップアップしないので、これら 2 つのキーボード呼び出しリクエストには応答しません。残りの 1 つだけが必要です。判断されても大丈夫です