【问题标题】:objective c how to remove the item in second and third text field based on select the first text field item目标c如何根据选择第一个文本字段项目删除第二个和第三个文本字段中的项目
【发布时间】:2020-04-27 08:10:45
【问题描述】:

我有一个 UIPickerview。我有一个json响应。我有一个三个文本字段。如果用户选择第一个文本字段显示选择器视图,则用户选择特定项目。第二个和第三个文本字段也一样。我的要求是如果用户在第一个选择器视图中选择特定项目,第二个和第三个选择器视图不显示该项目。第二和第三也一样。

-(void)viewDidLoad
{

dataArray = [[NSMutableArray alloc]initWithObjects:@"A+",@"A-",@"B+",@"B-",@"O+",@"O-", nil];

bloodGroup = [[UITextField alloc]initWithFrame:CGRectMake(10, logoImg.frame.origin.y+logoImg.frame.size.height+45, screenWidth-20, 50)];

bloodGroup.borderStyle = UITextBorderStyleRoundedRect;

bloodGroup.font = [UIFont systemFontOfSize:15];

bloodGroup.placeholder = @"Please Select Your Option";

bloodGroup.delegate = self;

[self.view addSubview:bloodGroup];

txtField1 = [[UITextField alloc]initWithFrame:CGRectMake(10, ansField1.frame.origin.y+ansField1.frame.size.height+45, screenWidth-20, 50)];

txtField1.borderStyle = UITextBorderStyleRoundedRect;

txtField1.font = [UIFont systemFontOfSize:15];

txtField1.placeholder = @"Please Select Your Option";

txtField1.delegate = self;

[self.view addSubview:txtField1];

txtField2 = [[UITextField alloc]initWithFrame:CGRectMake(10, ansField2.frame.origin.y+ansField2.frame.size.height+45, screenWidth-20, 50)];

txtField2.borderStyle = UITextBorderStyleRoundedRect;

txtField2.font = [UIFont systemFontOfSize:15];

txtField2.placeholder = @"Please Select Your Option";

txtField2.delegate = self;

[self.view addSubview:txtField2];

myPickerView = [[UIPickerView alloc] init];

[myPickerView setDataSource: self];

[myPickerView setDelegate: self];

myPickerView.showsSelectionIndicator = YES;

bloodGroup.inputView = myPickerView;

bloodGroup.inputAccessoryView = toolBar;

// txtField1

txtField1.inputView = myPickerView;

txtField1.inputAccessoryView = toolBar;

txtField2.inputView = myPickerView;

txtField2.inputAccessoryView = toolBar;

}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

if (isBloodGroupFieldSelected) {

return 1;

}

else if(!isBloodGroupFieldSelected){

return 1;

}

else if(!isGenderGroupFieldSelected)

{

return 1;

}

return 0;

}

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{

if (isBloodGroupFieldSelected) {

return [dataArray count];

}

else if(!isBloodGroupFieldSelected)

{

return [dataArray count];

}

else if (!isGenderGroupFieldSelected)

{

return [dataArray count];

}

return 0;

}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

if (isBloodGroupFieldSelected)

{

return dataArray[row];

}

else if((!isBloodGroupFieldSelected) && (isGenderGroupFieldSelected))

{

return dataArray[row];

}

else if(!isGenderGroupFieldSelected)

{

return dataArray[row];

}

return 0;

}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

if (isBloodGroupFieldSelected) {

bloodGroup.text = dataArray[row];

}

else if((!isBloodGroupFieldSelected) && (isGenderGroupFieldSelected))

{

txtField1.text = dataArray[row];

}

else if(!isGenderGroupFieldSelected)

{

txtField2.text= dataArray[row];

}

}

- (void)textFieldDidBeginEditing:(UITextField *)textField {

if (textField == bloodGroup) {

isBloodGroupFieldSelected = YES;

}

else if (textField == txtField1){

isBloodGroupFieldSelected = NO;

isGenderGroupFieldSelected = YES;

}

else if (textField == txtField2) {

isGenderGroupFieldSelected = NO;

isBloodGroupFieldSelected = NO;

}

[myPickerView reloadAllComponents];

}

【问题讨论】:

  • 请格式化代码。
  • @vadian 当然。如果您有任何想法,请告诉我我的查询

标签: ios objective-c pickerview


【解决方案1】:

-(void)viewDidLoad {

dataArray = [[NSMutableArray alloc]initWithObjects:@"A+",@"A-",@"B+",@"B-",@"O+",@"O-", nil];

bloodGroup = [[UITextField alloc]initWithFrame:CGRectMake(10, logoImg.frame.origin.y+logoImg.frame.size.height+45, screenWidth-20, 50)];

bloodGroup.borderStyle = UITextBorderStyleRoundedRect;

bloodGroup.font = [UIFont systemFontOfSize:15];

bloodGroup.placeholder = @"请选择您的选项";

bloodGroup.delegate = self;

[self.view addSubview:bloodGroup];

txtField1 = [[UITextField alloc]initWithFrame:CGRectMake(10, ansField1.frame.origin.y+ansField1.frame.size.height+45, screenWidth-20, 50)];

txtField1.borderStyle = UITextBorderStyleRoundedRect;

txtField1.font = [UIFont systemFontOfSize:15];

txtField1.placeholder = @"请选择您的选项";

txtField1.delegate = self;

[self.view addSubview:txtField1];

txtField2 = [[UITextField alloc]initWithFrame:CGRectMake(10, ansField2.frame.origin.y+ansField2.frame.size.height+45, screenWidth-20, 50)];

txtField2.borderStyle = UITextBorderStyleRoundedRect;

txtField2.font = [UIFont systemFontOfSize:15];

txtField2.placeholder = @"请选择您的选项";

txtField2.delegate = self;

[self.view addSubview:txtField2];

myPickerView = [[UIPickerView alloc] init];

[myPickerView setDataSource: self];

[myPickerView setDelegate: self];

myPickerView.showsSelectionIndicator = YES;

bloodGroup.inputView = myPickerView;

bloodGroup.inputAccessoryView = 工具栏;

// txtField1

txtField1.inputView = myPickerView;

txtField1.inputAccessoryView = 工具栏;

txtField2.inputView = myPickerView;

txtField2.inputAccessoryView = 工具栏;

}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

if (isBloodGroupFieldSelected) {

返回 1;

}

else if(!isBloodGroupFieldSelected){

返回 1;

}

else if(!isGenderGroupFieldSelected)

{

返回 1;

}

返回 0;

}

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

if (isBloodGroupFieldSelected) {

返回[数据数组计数];

}

else if(!isBloodGroupFieldSelected)

{

返回[数据数组计数];

}

else if (!isGenderGroupFieldSelected)

{

返回[数据数组计数];

}

返回 0;

}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

如果(isBloodGroupFieldSelected)

{

返回数据数组[行];

}

else if((!isBloodGroupFieldSelected) && (isGenderGroupFieldSelected))

{

返回数据数组[行];

}

else if(!isGenderGroupFieldSelected)

{

返回数据数组[行];

}

返回 0;

}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

if (isBloodGroupFieldSelected) {

bloodGroup.text = dataArray[row];

}

else if((!isBloodGroupFieldSelected) && (isGenderGroupFieldSelected))

{

txtField1.text = dataArray[row];

}

else if(!isGenderGroupFieldSelected)

{

txtField2.text=dataArray[row];

}

}

  • (void)textFieldDidBeginEditing:(UITextField *)textField {

if (textField == bloodGroup) {

isBloodGroupFieldSelected = YES;

}

else if (textField == txtField1){

isBloodGroupFieldSelected = 否;

isGenderGroupFieldSelected = YES;

}

else if (textField == txtField2) {

isGenderGroupFieldSelected = NO;

isBloodGroupFieldSelected = 否;

}

[myPickerView reloadAllComponents];

}

  • (void)textFieldDidBeginEditing:(UITextField *)textField {

if (textField == bloodGroup) {

isBloodGroupFieldSelected = YES;

}else if (textField == txtField1){

isBloodGroupFieldSelected = 否;

isGenderGroupFieldSelected = YES;

}

else if (textField == txtField2){

isGenderGroupFieldSelected = NO;

isBloodGroupFieldSelected = 否;

}

[myPickerView reloadAllComponents];

}

  • (void)viewWillAppear:(BOOL)动画{

[super viewWillAppear:animated];

[myPickerView selectRow:0 inComponent:0 动画:YES];

}

-(void)done:(id)sender

{

[myPickerView selectRow:0 inComponent:0 动画:YES]; // 2020 年 4 月 27 日

[bloodGroup resignFirstResponder];

[txtField1 resignFirstResponder];

[txtField2 resignFirstResponder];

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 2016-11-07
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多