gpt4 book ai didi

objective-c - 只允许选择一个 UIButton

转载 作者:行者123 更新时间:2023-11-29 13:42:54 24 4
gpt4 key购买 nike

我有三个 UIButtons 子类 (RadioBox)。我试图做到这一点,以便一次只能选择三个 RadioBoxes 中的一个。为此,我有两个委托(delegate)方法; radioSelectedState 和 radioUnselectedState。分别在选择和取消选择 RadioBox 时调用这些方法。不幸的是,到目前为止,我的代码只允许一次选择一个按钮,但如果我取消选择当前选择的按钮,按钮将取消选择而不是保持相同状态。

你能告诉我哪里错了吗?

提前致谢。

- (void) radioSelectedState:(RadioBox *) rb {

if (selectedRadios == nil) {
selectedRadios = [[NSMutableArray alloc] init];
}

if ([selectedRadios count] == 0) {
[selectedRadios addObject:rb];
}

else if ([selectedRadios count] == 1 && ![selectedRadios containsObject:rb] ) {
[(RadioBox *) [selectedRadios objectAtIndex:0] setState:RadioBoxStateUnselected];

[selectedRadios removeObjectAtIndex:0];

[selectedRadios addObject:rb];

}

else if ([selectedRadios count] == 1 && [selectedRadios containsObject:rb]) {
return;
}

}

- (void) radioUnselectedState:(RadioBox *) rb {

if ([selectedRadios count] == 1) {
return;
}

[selectedRadios removeObject:rb];

}

最佳答案

您可以轻松地将 RadioBox 对象保存在 NSArray 中,并在每次选择一个时循环遍历它,确保取消选择所有其他对象。

类似于:

// This assumes you have your RadioBox objects inside an NSArray named radioBoxArray
- (void)radioBoxTapped:(RadioBox *)rb {
for (RadioBox * box in radioBoxArray) {
[box setSelected:NO];
}

[rb setSelected:YES];
}

关于objective-c - 只允许选择一个 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8563887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com