나는 두 개의 UITextFields
을 만들고 서로 다른 값을 갖는 textFields
과 두 개의 서로 다른 두 개의 UIPickerViews
을 만들고 각각의 textFields
을 각 pickerView
에 어떻게 매핑할까요? 어떤 도움이 필요합니까?두 개의 텍스트 상자에 대해 두 개의 선택기보기를 만드는 방법은 무엇입니까?
-1
A
답변
0
최초의 datasource
을 변경 만듭니다는 다른 값을 포함하는 두 배열을 만들 diff picker에 표시하고자하는 내용을 aray1과 ary2라고합니다.
- (void)viewDidLoad
{
[super viewDidLoad];
firstTF.delegate = self;
secondTF.delegate = self;
ary1 =[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8", nil];
ary2 =[NSArray arrayWithObjects:@"a",@"s",@"d",@"f",@"g",@"h",@"x",@"c", nil];
}
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if (textField == firstTF) {
txtFieldSelected = @"firstTF";
}else if (textField == secondFF) {
txtFieldSelected = @"secondTF";
}
CGRect pickerFrame = CGRectMake(0, 40, 0, 0);
pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame];
pickerView.showsSelectionIndicator = YES;
pickerView.dataSource = self;
pickerView.delegate = self;
keyboardDoneButtonView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
keyboardDoneButtonView.barStyle = UIBarStyleBlackTranslucent;
[keyboardDoneButtonView sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed:)];
[barItems addObject:cancelBtn];
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];
[keyboardDoneButtonView setItems:barItems animated:YES];
textField.inputAccessoryView = keyboardDoneButtonView;
textField.inputView = pickerView;
return YES;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
if (txtFieldSelected == @"firstTF") {
return ary1.count;
}else if (txtFieldSelected == @"secondTF") {
return ary2.count;
}
return 1;
}
-(void)doneButtonPressed:(id)sender{
if (txtFieldSelected == @"firstTF") {
[firstTF resignFirstResponder];
}else if (txtFieldSelected == @"secondTF") {
[secondTF resignFirstResponder];
}
}
-(void)cancelButtonPressed:(id)sender{
if (txtFieldSelected == @"firstTF") {
[firstTF resignFirstResponder];
}else if (txtFieldSelected == @"secondTF") {
[secondTF resignFirstResponder];
}
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
// called when a row is selected
if (txtFieldSelected == @"firstTF") {
firstTF.text = [ary1 objectAtIndex:row];
}else if (txtFieldSelected == @"secondTF") {
secondTF.text = [ary2 objectAtIndex:row];
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (txtFieldSelected == @"firstTF") {
return [ary1 objectAtIndex:row];
}else if (txtFieldSelected == @"secondTF") {
return [ary2 objectAtIndex:row];
}
return @"Good Day";
}
1
약 textField.inputview
에 대해 각각 이와 같은 옵션을 선택하십시오.
textField.inputView = pickerView1;
textField1.inputView = pickerView2;
내가 두 pickerView
을 만드는 대신 다음이 상황에서 코드를 작성하는 경우, 내가 한 pickerview
및 모든 각 textfield
0
textField1.inputView = pickerView1;
textField2.inputView = pickerView2;
pickerView.tag = 1;
pickerView.tag = 2;
사용 UIPickerView
.H 파일
@interface YourViewController : UIViewController<UITextFieldDelegate,UIPickerViewDelegate, UIPickerViewDataSource>
{
UIToolbar* keyboardDoneButtonView;
UIPickerView *pickerView;
NSString * txtFieldSelected;
NSArray *ary2;
NSArray *ary1;
}
과 .H 파일이 추가.
관련 문제
- 1. 두 개의 텍스트 상자에 값이 있는지 확인하십시오.
- 2. 두 개의 텍스트 상자에 simulatenously 입력하십시오.
- 3. 두 개의 데이터를 텍스트 상자에 바인딩
- 4. 두 개의 목록을 쌍으로 만드는 방법은 무엇입니까?
- 5. 두 개의 원이있는 모양을 만드는 방법은 무엇입니까?
- 6. 두 개의 다른 페이지에 두 개의 텍스트 상자가 있습니다.
- 7. 같은 서비스에 대해 두 개의 구성된 인스턴스를 만드는 방법은 무엇입니까?
- 8. 만드는 두 개의 열
- 9. 두 개의 개별 프로젝트를 만드는 방법은 무엇입니까?
- 10. 두 개의 평행선을 만드는 방법은 무엇입니까?
- 11. 두 개의 장면을 만드는 방법은 무엇입니까?
- 12. 콤보 상자에 두 개의 열로드
- 13. 세 번째 텍스트 상자에 두 개의 텍스트 상자 텍스트 표시
- 14. 주어진 단일 검색에 대해 두 개의 값을 필터링하는 방법은 무엇입니까?
- 15. 두 프레임 사이에 공백없이 두 개의 프레임을 만드는 방법은 무엇입니까?
- 16. 두 테이블간에 두 개의 관계를 만드는 방법은 무엇입니까?
- 17. asp.net에서 두 개 또는 세 개의 텍스트 상자에 대해 단일 requiredfield 유효성 검사기를 사용하는 방법은 무엇입니까?
- 18. 두 개의 콜렉션을 조작하는 두 개의 스레드를 해결하는 방법은 무엇입니까?
- 19. 두 개의 개별 페이지를 두 개의 개별 iframe에로드하는 방법은 무엇입니까?
- 20. 두 개의 선택 또는 두 개의 쿼리를 결합하는 방법은 무엇입니까?
- 21. 두 개의 유사한 객체에 대해 두 개의 개별 테이블을 만들어야합니까?
- 22. 두 개의 다른 텍스트 컨텍스트에 바인드 된 두 개의 다른 텍스트 상자를 얻는 방법은 무엇입니까?
- 23. 두 개의 Ajax 요청을 처리하는 방법은 무엇입니까?
- 24. 내가 두 개의 텍스트 상자가
- 25. 하나의 양식과 '새'작업으로 두 개의 다른 클래스로 된 두 개의 객체를 만드는 방법은 무엇입니까?
- 26. 텍스트 열에 대해 두 개의 전체 텍스트 인덱스가 실제로 필요합니까?
- 27. android sqlite 두 개의 관련없는 두 개의 테이블에 대해 두 개의 db가 있어야합니까?
- 28. 두 개의 서로 다른 ActiveResource 모델이 두 개의 다른 연결 객체를 사용하도록 만드는 방법은 무엇입니까?
- 29. C# webforms에서 두 개의 SQL Server 열에서 두 개의 텍스트 상자 값을 확인하는 방법은 무엇입니까?
- 30. 두 개의 열이 문자열 형식 인 다른 열에 대해 두 개의 열 데이터를 추가하는 방법은 무엇입니까?