сборщик не отображался - PullRequest
       10

сборщик не отображался

0 голосов
/ 17 апреля 2011

пожалуйста, у меня есть часы с этой проблемой, не найдя решения и не обращаясь к вам за это:)

У меня есть UIPickerView, который должен отображаться в нижней части представления, когда пользователь щелкает UITextField (это то, к чему обязывает мое приложение), поэтому я реализую этот метод, чтобы перехватить событие касания текстового поля. :

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch *touch;
    touch=[touches anyObject];
    CGPoint point=[touch locationInView:self.view];
    if(CGRectContainsPoint([typeCarburantTextField frame],point))
    {
        [self pickerTypeCarburantsShow];

    }

}

и этот метод для предотвращения отображения клавиатуры при нажатии пользователем на текстовое поле:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    return NO;

}

pickerTypeCarburantsShow

-(IBAction)pickerTypeCarburantsShow{

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        CGAffineTransform transform=CGAffineTransformMakeTranslation(0, 240);
        pickerViewTypesCarburants.transform=transform;
        [self.view addSubview:pickerViewTypesCarburants];
        [UIView commitAnimations];

    }

все мои IB-соединения довольно хороши, однако, когда я запускаю и нажимаю UITextField, клавиатура не появляется , но я не вижу, что средство выбора показывало просьба помочь, спасибо заранее :)

Ответы [ 3 ]

1 голос
/ 17 апреля 2011

Возможно, вы захотите вот это ..

UITextField имеет это свойство,

inputView

Пользовательский вид ввода, отображаемый, когда текстовое поле становится первым респондентом.

@property (readwrite, retain) UIView *inputView

Обсуждение Если значение в этом свойстве равно nil, текстовое поле отображает стандартную системную клавиатуру, когда оно становится первым респондентом. Присвоение пользовательскому представлению этого свойства приводит к тому, что это представление будет отображаться вместо этого.

Значением этого свойства по умолчанию является ноль.

Таким образом, чтобы отобразить другое представление вместо клавиатуры, все, что требуется, это установить это представление, в данном случае uipickerview или его контейнер в качестве входного представления для текстового поля ...

например, чтобы показать какую-то панель выбора вместо клавиатуры, вы можете захотеть

textView.inputView = [[UIPickerView alloc] initWithFrame:CGRectMake(...)];
1 голос
/ 17 апреля 2011

Есть ли в вашем PickerView свой делегат и источник данных? Иначе не будет.

0 голосов
/ 18 апреля 2011

моя проблема была решена, поэтому проблема была в методе делегата UITextField, я реализовал неправильный метод:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

    [textField resignFirstResponder];
    return YES;
}

Вместо этого должен использоваться этот метод для отображения UIPickerView:

- (void)textFieldDidBeginEditing:(UITextField *)textField{
    [textField resignFirstResponder];
    [self pickerTypeCarburantShow];
}

, где pickerTypeCarburantShow - это метод IBAction, который должен анимировать весь вид UIPickerView. Надеюсь, это поможет, кто борется с той же проблемой:)

...