我有一个UIViewController,它有2个分段控件Takeaway
和Delivery
,以及5个UITextField,它们是adressField
,stateField
,cityField
,{ {1}}和postcodeField
。
我想在用户选择phoneField
时禁用除UITextfield
之外的每个phoneField
的用户输入,并在用户选择Takeaway
时启用所有UITextfield
。
我的问题是Delivery
即使我记录了值phoneField
返回phoneField.isEnabled
,也无法正常工作。当我选择YES
段时,所有字段都有效。我在这里想念什么?
当用户进入视图时,如何将段Delivery
设置为默认状态?因为目前我需要选择Takeaway
才能使更改生效。
这是问题的SegmentedControl
摘要。
IBAction
答案 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;
}
}