2012-03-02 56 views
2

我已经设置了这个combo box,它工作得很好。现在我有一个需要向下滚动的场景,而且我已经实现了一个滚动视图,它占据了整个场景。我有4个组合框在场景中,我无法让它们正常工作。在我的ViewController.m中,如果我将“self.view addSubview”更改为“self.theScroller addSubView”,我可以将ComboBox加载到滚动条上,单击时它会抛出普通键盘并且不加载UIPickerView。ComboBox在UIScrollView中不起作用

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); 

我不知道如何让“类型”组合框能够访问和正确加载UIPicker而在滚轮。

回答

1

这是一个(小)挑战,但我认为我找到了解决方案。

进入ComboBox.h并使其符合UITextFieldDelegate。

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

然后进入ComboBox.xib并使文件所有者成为textField的委托属性。

最后,在ComboBox.m添加委托方法如下:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)aTextField 
{ 
    [self showPicker:aTextField]; 
    return YES; 
} 
+0

哇弗兰克,就像一个魅力。我不完全理解我在ComboBox.m中使用新方法做了什么,但它适用于组合框是viewcontroller的直接子视图和滚动视图的子视图。非常感谢。 – BamBamBeano 2012-03-02 19:01:01