与UIPicker视图UITextfield问题

这里是视图的图像,我有以下问题。 我为用户创build了一个示例用户信息表单。 他填写一些细节并提交。 看到上面的截图中的第一个子图像。

我在这里input名字和姓氏,当我通过滚动视图或使用键盘上的键盘上的下一个button手动将名字切换至姓氏时,正常的键盘将出现。

然后,当点击代码文本字段时,会出现一个uipickerview / UIActionsheet。 Plase看到以前的图像。

它工作正常。 当我将一个名字文本字段移动到姓氏文本字段,并从姓氏到代码文本字段。

问题 :我的问题是,假设目前我是姓氏textfield,即我input我的姓氏,我点击代码textfield下面的问题即将到来。 看到下面的图像。 这是我的问题

所以在这里,键盘出现以及uipickerview / UIactionsheet也来临,但在behing键盘。 我不知道它会到来。 不仅姓氏代码文本字段forms名字代码文本字段或电子邮件文本字段代码文本字段…同样的问题是只有当我移动到一个文本字段滚动/切换下一个领域。 如果我使用键盘上的下一个button,它正在移动和工作文件。

有人帮我解决这个问题。

在这里我的代码,

@interface CreateTicketViewController () - (void)countryCodeWasSelected:(NSNumber *)selectedIndex element:(id)element; @end @implementation CreateTicketViewController - (IBAction)countryCodeClicked:(id)sender { [self removeKeyboard]; [ActionSheetStringPicker showPickerWithTitle:NSLocalizedString(@"Select CountryCode",nil) rows:_countryArray initialSelection:0 target:self successAction:@selector(countryCodeWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:sender]; } - (void)actionPickerCancelled:(id)sender { NSLog(@"Delegate has been informed that ActionSheetPicker was cancelled"); } - (void)countryCodeWasSelected:(NSNumber *)selectedIndex element:(id)element{ // self.selectedIndex = [selectedIndex intValue]; //may have originated from textField or barButtonItem, use an IBOutlet instead of element self.codeTextField.text = (_codeArray)[(NSUInteger) [selectedIndex intValue]]; } #pragma mark - UITextFieldDelegate - (void)textFieldDidBeginEditing:(UITextField *)textField { if (textField==_codeTextField) { [_codeTextField resignFirstResponder]; _codeTextField.tintColor = [UIColor clearColor]; [self removeKeyboard]; [ActionSheetStringPicker showPickerWithTitle:NSLocalizedString(@"Select CountryCode",nil) rows:_countryArray initialSelection:0 target:self successAction:@selector(countryCodeWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:self.view]; //return NO; } 

这里是removeKeyboard的方法。

 UIToolbar *toolBar= [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; UIBarButtonItem *removeBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(removeKeyBoard)]; -(void)removeKeyboard{ [_emailTextField resignFirstResponder]; // [_mobileTextField resignFirstResponder]; // [_msgTextField resignFirstResponder]; [_subjectTextField resignFirstResponder]; [_firstNameTextField resignFirstResponder]; } 

再次同样的问题,检查我的解决scheme..! 我已经为此发布了答案。 https://stackoverflow.com/a/46903445/8174920

你必须这样做:

 _codeTextField.inputView = YOURPICKER