2

我是 OS X 应用程序开发的新手。我在应用程序中有许多复选框。我需要将值存储为 1 和 0,具体取决于是否选中了复选框。如何获取 NSInteger 变量的值,例如“NSInteger sampleValue”。

4

3 回答 3

8

创建 IBAction 并连接到复选框

-(IBAction)checkBoxState : (id)sender;
{
    NSLog(@"state %d", [sender state]);
}  

如果您有多个复选框,请将所有复选框连接到相同的 IBAction 方法。更改复选框的标记值
在此处输入图像描述

-(IBAction)checkBoxState : (id)sender;
{
    if (0==[sender tag]) {
        NSLog(@"1st checkbox state %d", [sender state]);
    }
    else    if (1==[sender tag]) {
        NSLog(@"2nd checkbox state %d", [sender state]);
    }
    else    if (2==[sender tag]) {
        NSLog(@"3rd checkbox state %d", [sender state]);
    }


}

看看示例项目

于 2012-12-27T08:45:43.030 回答
4

如果你想获得NSInteger价值使用[checkbox state]。可以这样做:

NSInteger integValue = [checkBoxOutlet state];

NSLog(@"%li", integValue); //Show value on screen

checkBoxOutlet是您在头文件中的复选框出口。

于 2012-12-27T08:00:30.570 回答
3

您可以找到:(check1 是 checkBox 的属性名称)

NSLog(@"%ld",[_check1 state]);//will give -1, 0 or 1, as mixed, off or on.

此外,如果您想更具未来感(即,如果将来 1 或 0 或 -1 的值发生变化,请使用这些 enums )

if ([_check1 state]==NSOnState) {
    NSLog(@"ON-Checked");
}
else if([_check1 state]==NSOffState){
    NSLog(@"OFF-UnChecked");
}
else if([_check1 state]==NSMixedState){
    NSLog(@"OFF-MixedChecked");
}
于 2012-12-27T08:46:56.257 回答