假设我有两个按钮是ivar插座。一个叫做“蓝色”,另一个叫“红色”。现在,我有一个值为“红色”的NSString。我想将NSString标识的按钮设置为selected
状态,而不使用if
。
我不想要这样做:
NSString *button=@"Red";
if ([button isEqualtoString:@"Blue")
self.blue.selected=YES; //self.blue and self.red are UIButtons
else
self.red.selected=YES;
如果你有两个按钮,这很好,但我有更多的按钮,对于30个按钮这样做会非常不优雅和麻烦。
我更愿意找到一种方法将UIButton
ivar的名称直接链接到NSString
的值。
答案 0 :(得分:6)
把字符串小写和 您可以使用KVC:
[self setValue:[NSNumber numberWithBool:YES]
forKeyPath:[NSString stringWithFormat:@"%@.selected", button]];
答案 1 :(得分:3)
您可以将按钮放在字典中:
[NSDictionaryName addObject: UIButtonName forKey: @"blue"];
或类似的东西:
[NSDictionaryName objectForKey:@"blue"].selected = YES;