首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改UITextField时启用SegmentedControl

更改UITextField时启用SegmentedControl
EN

Stack Overflow用户
提问于 2014-09-30 08:40:26
回答 2查看 59关注 0票数 0

我有一个UIViewController,它有两个分段控制,分别是TakeawayDelivery,还有5个UITextFields,它们是adressFieldstateFieldcityFieldpostcodeFieldphoneField

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

我的问题是,即使当我记录值时,phoneField也不能工作,phoneField.isEnabled返回YES。当我选择Delivery段时,所有字段都可以工作。我在这里错过了什么?

此外,当用户输入视图时,如何将段Takeaway设置为默认状态?因为目前我需要选择SegmentedControl以使更改生效。

这是我的IBAction代码片段。

代码语言:javascript
复制
- (IBAction)segmentChanged:(id)sender
{
    NSLog(@"SEGMENT: %d", [segment selectedSegmentIndex]);

    switch ([segment selectedSegmentIndex]) {
        case 0:
        {
            self.navigationItem.title = @"Takeaway";
            addressField.enabled = N0;
            ...

            // Enable phoneField here.
            phoneField.enabled = YES;
        }
            break;
        case 1:
        {
            self.navigationItem.title = @"Delivery";
            ...
        }
        break;
        default:
            break;
    }

    // code to change the opacity of the textfield.
    [addressField setAlpha:[segment selectedSegmentIndex]==1 ? 1.0f : 0.3f];
    [addressLabel setAlpha:[segment selectedSegmentIndex]==1 ? 1.0f : 0.3f];
    [addressBox setUserInteractionEnabled:[segment selectedSegmentIndex]==1];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-30 09:18:30

我想问题是:

代码语言:javascript
复制
   [addressBox setUserInteractionEnabled:[segment selectedSegmentIndex]==1];

addressBox包含phoneField,对吗?这意味着在整个视图和它的子视图中禁用用户交互。删除这一行并分别处理文本字段。

票数 0
EN

Stack Overflow用户

发布于 2014-09-30 09:28:28

代码语言:javascript
复制
- (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;
   }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26116366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档