ComboBox не работает, когда в UIScrollView - PullRequest
2 голосов
/ 02 марта 2012

Я установил это поле со списком , и оно прекрасно работает.Теперь у меня есть сцена, которую нужно прокрутить вниз, и я реализовал представление прокрутки, которое занимает всю сцену.У меня есть 4 из этих комбо-боксов на сцене, и я не могу заставить их работать должным образом.В моем ViewController.m, если я изменяю «self.view addSubview» на «self.theScroller addSubView», я могу заставить ComboBox загружаться на скроллер, при щелчке по нему открывается обычная клавиатура и не загружается UIPickerView.

 NSMutableArray* fieldTeamsArray = [[NSMutableArray alloc] init];
[fieldTeamsArray addObject:@"Field Team 1"];
[fieldTeamsArray addObject:@"Field Team 2"];
[fieldTeamsArray addObject:@"Field Team 3"];

fieldTeams = [[ComboBox alloc] init];
[fieldTeams setComboData:fieldTeamsArray];          
[self.view addSubview:fieldTeams.view];  //UIPicker works but not on the Scroll View
fieldTeams.view.frame = CGRectMake(20, 135, 275, 30);      //ComboBox location 


NSMutableArray* typesArray = [[NSMutableArray alloc] init];
[typesArray addObject:@"type 1"];
[typesArray addObject:@"type 2"];
[typesArray addObject:@"type 3"];

types = [[ComboBox alloc] init];
[types setComboData:typesArray];          
[self.theScroller addSubview:types.view];   //ComboBox on Scroll View but no UIPicker
types.view.frame = CGRectMake(20, 187, 275, 30); 

Я не знаю, как получить поле со списком «types», чтобы иметь возможность доступа и правильной загрузки UIPicker, находясь в скроллере.

1 Ответ

1 голос
/ 02 марта 2012

Это была (маленькая) проблема, но я думаю, что нашел решение.

Зайдите в ComboBox.h и приведите его в соответствие с UITextFieldDelegate.

@interface ComboBox : UIViewController<UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate>

Затем перейдите в ComboBox.xib и сделайте Владелец файла свойством делегата textField.

И, наконец, добавьте в ComboBox.m метод делегата, следующий:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)aTextField
{
    [self showPicker:aTextField];
    return YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...