【问题标题】:cocoa: what's the meaning of NSbutton sender intValue?cocoa:NSbutton sender intValue是什么意思?
【发布时间】:2012-07-30 13:24:33
【问题描述】:

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

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

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

【问题讨论】:

    标签: cocoa


    【解决方案1】:

    这将是一个 NSInteger 的 NSButton 状态,但你应该使用这个枚举来代替:

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

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

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

    【讨论】:

    • 使用 NSOnState/NSOffState 和仅使用数字 1/0 有什么区别吗?
    • 区别在于清晰,NSOnState 记录您的代码。否则没有。
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2017-06-11
    • 2018-03-05
    • 2023-03-27
    • 1970-01-01
    • 2013-03-09
    相关资源
    最近更新 更多