У меня есть 3 текстовых поля в одном, я внедрил UIPickerView
и отключил клавиатуру, используя resignFirstResponder
, но когда я нажимаю на другую, то и клавиатура, и pickerview видны.Клавиатура и пикелерПросмотреть все обои для рабочего стола
ответ
набор каждый UITextField
«s Делегат self
, а затем просто поставить этот метод в .m
класса .. В этом коде я просто установить кадр yourPickerView
с 500
y
точки вместо того, что вы можете скрыть UIPickerView
..
Этот код Скрывает UIPickerView
с анимацией, как клавиатура ..
UPDATE:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField == TextField1) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect frame = yourPickerView.frame;
frame.origin.y = 500;
yourPickerView.frame = frame;
[UIView commitAnimations];
return YES;
}
else if (textField == TextField2) {
[TextField1 resignFirstResponder];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect frame = yourPickerView.frame;
frame.origin.y = 107;
yourPickerView.frame = frame;
[UIView commitAnimations];
return NO;
}
return YES;
}
@ prabhanjank89 с вышеуказанным кодом вы можете скрыть UIPickerView как системную клавиатуру UITextField .. :) надеюсь, что это вам полезно ... –
, когда я сначала нажимаю TextField1, а затем прямо на TextField2, где я использовал [TextField2 resignFirstresponder], чтобы я могу отобразить мой pickerView, что происходит, моя клавиатура TextField1 все еще видна вместе с pickerview. Я хочу только pickerview. – Kernal
ohhh wait just put condition like my updated code wait ... –
Вам нужно знать, что именно показать. Вы можете использовать [self.view endEditing:YES];
, чтобы удалить клавиатуру, когда это необходимо, и реализовать свой собственный метод, чтобы скрыть сборщик, когда это необходимо.
2 текстовых поля, один для ввода текста (inputTextField) в нем, другой для отображения содержимого pickerView. когда я нажимаю 1-го текстового поля (inputTextField) на pickerView TextField, видны как pickerView, так и клавиатура. но я хочу только pickerView; я смирился с pickerViewTextField. – Kernal
создать локальный экземпляр UIPickerView
, и в методе делегата от TextFiled textFieldDidBeginEditing
проверки для видимости UIPickerView
, если Visible скрыть это
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if(![_pickerView isHidden])
{
[_pickerView setHidden:YES];
}
//...
}
Вы должны поставить эту линию первый, когда вы собираетесь Отобразите PickerView
.
[self.view endEditing:YES];
Теперь после этого PickerView Откроет & фокус не будет на TextField после написания следующей строки, так что вам нужно сделать, это поставить кнопку Готово над Picker & передать выбранное значение Picker для этого TextField.
Попробуйте этот код:
- (void)textFieldDidBeginEditing:(UITextField *)aTextField
{
if(txtVisitDate.isEditing == TRUE)
{
if ([txtPlaceName isFirstResponder])
{
[txtPlaceName resignFirstResponder];
}
[aTextField resignFirstResponder];
pickerViewPopup = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 0, 0)];
pickerView.datePickerMode = UIDatePickerModeDate;
pickerView.hidden = NO;
pickerView.date = [NSDate date];
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerToolbar.barStyle = UIBarStyleBlackOpaque;
[pickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed:)];
[barItems addObject:doneBtn];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed:)];
[barItems addObject:cancelBtn];
[pickerToolbar setItems:barItems animated:YES];
[pickerViewPopup addSubview:pickerToolbar];
[pickerViewPopup addSubview:pickerView];
[pickerViewPopup showInView:self.view];
[pickerViewPopup setBounds:CGRectMake(0,0,320, 475)];
}
}
Надеется, что это поможет.
2 текстовых поля, один для ввода текста (inputTextField) в нем, другой для отображения содержимого pickerView. когда я нажимаю 1-го текстового поля (inputTextField) на pickerView TextField, видны как pickerView, так и клавиатура. но я хочу только pickerView; я смирился с pickerViewTextField. – Kernal
Итак, когда вы сдались TextField, что произойдет? вы можете скрыть клавиатуру, если нет, чем пытаться поставить выше строки. – Mayur
клавиатура TextField будет скрываться только при щелчке «return», но когда элемент управления достигнет pickerViewTextfield при прямом щелчке как pickerView, так и Keyboard видны – Kernal
Установите сборщик как inputView
для текстового поля:
myTextField.inputView = self.myPickerView;
Таким образом, вам не нужно обрабатывать отображение клавиатуры/сборщика на всех. Это все сделано для вас.
Простейшее решение: inputView Property
yourTextField.inputView = self.yourPickerView;
Проверьте Documentation.
- 1. Android обои для рабочего стола
- 2. андроид обои для рабочего стола
- 3. Обои для рабочего стола Android вокруг заголовка
- 4. Обои для рабочего стола обоев/фоновые размеры
- 5. Обои для рабочего стола в качестве фона
- 6. Обои для рабочего стола в качестве фона
- 7. изменить обои для рабочего стола C#
- 8. обои для рабочего стола в iPhone
- 9. Как сменить обои для рабочего стола?
- 10. Установить начало экрана и обои для рабочего стола в WinRT
- 11. Прозрачная вкладка для отображения рабочего стола (обои и значки)
- 12. Как изменить обои рабочего стола с .bat
- 13. Установите обои для рабочего стола для сгенерированных растровых изображений
- 14. Расширение Chrome для изменения Обои для рабочего стола
- 15. Есть ли способ установить статические обои для рабочего стола programmaticaly?
- 16. Изменение обоев для рабочего стола
- 17. html file as win7/linux обои для рабочего стола
- 18. андроид обои для рабочего стола с использованием намерения от drawable
- 19. Установить обои для рабочего стола с помощью Mono
- 20. Как настроить обои для рабочего стола по программе?
- 21. Проблема установки обои для рабочего стола с использованием SystemParametersInfo Функция
- 22. VB Script изменить обои для рабочего стола при запуске
- 23. Обои для рабочего стола Android постепенно становятся неопределенными
- 24. Обои для рабочего стола сбой при нажатии кнопки набора
- 25. W10 UWP - дистанционное изображение как обои для рабочего стола/LockScreen
- 26. Как изменить обои для рабочего стола программой .NET?
- 27. Android Developing - Обои для рабочего стола в качестве фона приложения
- 28. Установить рабочий стол/обои для рабочего стола на программно прошивке
- 29. Получить ссылку на текущий обои для рабочего стола
- 30. Изменить обои для рабочего стола с помощью кода в .NET
я думаю, что его происходит в - (BOOL) textFieldShouldBeginEditing UITextFields в делегатом метод пост этот метод .. –
вы должны скрыть 'UIPickerView' – Novarg
, когда я первый нажмите на textField1, а затем непосредственно на поля 2, где я использовал [resignFirstresponder поля 2], так что я могу отобразить мой pickerView, что происходит, моя клавиатура TextField1 все еще видна вместе с pickerview. Я хочу только pickerview. – Kernal