1

我正在尝试使用数组加载段控件。当我这样做时,它选择男性作为默认值。我不希望选择男性或女性,默认情况下都未选择。

- (id)initWithAnimal:(ITAnimal *)Animal isEdit:(BOOL)isEdit
{
self = [super init];
if (self) {
    // Custom initialization
    _Animal = Animal;
    _genders = [NSArray arrayWithObjects:@"Male", @"Female", nil];
    if (!_Animal) {
        _Animal = [[ITData sharedObject] managedObjectFromName:@"ITAnimal"];
        _Animal.gender = [_genders objectAtIndex:0];

    }
    _isEdit = isEdit;

    // gender controll
    self.genderControl = [[UISegmentedControl alloc] initWithItems:_genders];
    [self.genderControl addTarget:self action:@selector(genderChanged:) forControlEvents:UIControlEventAllEvents];
    }
    return self;
}





}
else if (indexPath.row == 2) {
    BOOL isIn = NO;
    for (id view in cell.contentView.subviews) {
        if ([view isEqual:self.genderControl]) isIn = YES;
    }
    if (!isIn) [cell.contentView addSubview:self.genderControl];

    [cell.detailTextLabel setHidden:_isEdit];
    [self.genderControl setSelectedSegmentIndex:[_genders indexOfObject:content]];

    [self.genderControl setHidden:!_isEdit];
}
4

4 回答 4

4

您可能应该使用:

[self.genderControl setSelectedSegmentIndex:UISegmentedControlNoSegment];

来自苹果的文档:

默认值为 UISegmentedControlNoSegment (未选择段),直到用户触摸一个段。将此属性设置为 -1 以关闭当前选择。当控件处于瞬时模式时,UISegmentedControl 会忽略此属性。

于 2013-04-25T14:53:44.420 回答
2

你正在寻找

[segmentcontrol setSelectedSegmentIndex:-1];
于 2013-04-25T14:52:39.353 回答
1

我不知道这对某人来说是否仍然是一个问题.. 但是如果您使用的是故事板.. 选择您放置在 viewController 和属性 Inspector --> Segmented Control --> Behavior 中的 segmentedIndex 取消选中选中的复选框。

于 2018-04-10T10:28:52.380 回答
0

如果您在这里寻找 SwiftUI 的解决方案,只需将您的 currentSelection 值默认设置为 -1。

   struct Parent: View {
    
      @State private var currentSelection = -1
      
      var segmentOptions = ["Green", "Blue"]
      
      var body: some View {
        HStack {
            
            Picker(selection: $currentSelection, label: Text("What is your favorite color?")) {
                ForEach(0..<segmentOptions.count) { index in
                    Text(self.segmentOptions[index]).tag(index)
                }
            }.pickerStyle(SegmentedPickerStyle())
        }
      }
    }
于 2020-11-30T18:05:28.363 回答