1

我创建了一个 IBAction,如下所示:

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

当我反复单击按钮时,代码打印出 1,0,1,0,1,0。我想知道发件人的 intValue 的含义。引用是 以 int 形式返回接收者的值。但我不知道这不是什么意思。

4

1 回答 1

2

那将是 NSButton 状态,它是一个 NSInteger,但您应该改用这个枚举:

enum {
   NSMixedState = -1,
   NSOffState   = 0,
   NSOnState    = 1
};

该按钮通常会一直存在,NSOffState直到您单击它并更改为NSOnState,然后下一次单击将其再次更改回 - 对于一个简单的按钮,您不会在视觉上看到此状态,但对于某些按钮类型(如复选框),会显示状态视觉上。

这里sender将是你的NSButton,使用它会更正确,state而不是intValue(但你需要NSButton先将它转换为)。

于 2012-07-30T15:10:00.997 回答