我需要将复选框控件添加到我的表单。我知道iOS SDK中没有此类控件。我该怎么办?

最佳答案

这已经快把我逼疯了太多,我发现了一个不同的解决方案,对我来说,不得不使用图片避免效果很好。

  • 将新的标签对象添加到Interface Builder。
  • 在Xcode中创建IBOutlet属性并将其连接到它。在下面的代码中,我将其称为“fullyPaid”,因为我想知道某人是否已全额支付了一笔钱。
  • 添加下面的2个函数。
    'touchesBegan'函数检查您是否触摸了'fullyPaid'标签对象内的某个地方,如果是,则调用'togglePaidStatus'函数。
    'togglePaidStatus'函数设置两个字符串,它们的unicode字符分别代表一个空框(\u2610)和一个选中框(\u2611)。然后,它会比较“fullyPaid”对象中当前的内容,并将其与其他字符串进行切换。

  • 您可能要在viewDidLoad函数中调用togglePaidStatus函数,以将其最初设置为空字符串。

    显然,如果未启用标签,则可以添加额外的检查以防止用户切换复选框,但这未在下面显示。
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
    UITouch *touch = [touches anyObject];
        if (CGRectContainsPoint([fullyPaid frame], [touch locationInView:self.view]))
        {
            [self togglePaidStatus];
        }
    }
    -(void) togglePaidStatus
    {
        NSString *untickedBoxStr = [[NSString alloc] initWithString:@"\u2610"];
        NSString *tickedBoxStr = [[NSString alloc] initWithString:@"\u2611"];
    
        if ([fullyPaid.text isEqualToString:tickedBoxStr])
        {
            fullyPaid.text = untickedBoxStr;
        }
        else
        {
            fullyPaid.text = tickedBoxStr;
        }
    
        [tickedBoxStr release];
        [untickedBoxStr release];
    }
    

    09-20 10:17