更改SegmentedControl时启用UITextField

时间:2014-09-30 08:40:27

标签: ios objective-c uitextfield ios8 uisegmentedcontrol

我有一个UIViewController,它有2个分段控件TakeawayDelivery,以及5个UITextField,它们是adressFieldstateFieldcityField,{ {1}}和postcodeField

我想在用户选择phoneField时禁用除UITextfield之外的每个phoneField的用户输入,并在用户选择Takeaway时启用所有UITextfield

我的问题是Delivery即使我记录了值phoneField返回phoneField.isEnabled,也无法正常工作。当我选择YES段时,所有字段都有效。我在这里想念什么?

当用户进入视图时,如何将段Delivery设置为默认状态?因为目前我需要选择Takeaway才能使更改生效。

这是问题的SegmentedControl摘要。

IBAction

2 个答案:

答案 0 :(得分:0)

我猜问题是:

   [addressBox setUserInteractionEnabled:[segment selectedSegmentIndex]==1];

addressBox包含phoneField,对吗?这意味着您在整个视图中禁用用户交互及其子视图。删除此行并单独处理文本字段。

答案 1 :(得分:0)

- (void)viewDidLoad {
   [super viewDidLoad];


   [self.segmentCtrl addTarget:self
                            action:@selector(segmentChanged:)
                  forControlEvents:UIControlEventValueChanged];

    //Tag=5 is of phoneTextField
   [self.view viewWithTag:5].userInteractionEnabled = NO;

}


- (IBAction)segmentChanged:(id)sender
{
    int selectedIndex = (int)[self.segmentCtrl selectedSegmentIndex];

   NSLog(@"SEGMENT: %d",selectedIndex );


   switch (selectedIndex)
   {
       case 0:
                    // Takeaway
        [self.view viewWithTag:5].userInteractionEnabled = NO;
            //Tag=5 is of phoneTextField
        break;

       case 1:
                    // Delivery
        [self.view viewWithTag:5].userInteractionEnabled = YES;
        //Tag=5 is of phoneTextField
        break;

       default:
        break;
   }

}
相关问题