如果声明无法正常工作

时间:2012-07-15 21:19:12

标签: objective-c cocoa if-statement timer nstimer

每当“_ currentField”(带有数字格式化程序的文本字段)的值大于或等于1000时,我想要显示“_congrats”(这是一个面板),当它小于1000时,我想要“ _errormsg“(另一个小组)出现。每次我输入任何值时,弹出的唯一内容是“_errormsg”。我做错了什么?

- (void)onTimer:(NSTimer*)aTimer {

    if ([_currentField.stringValue integerValue] >= 1000)

    {
        [_congrats orderFront:(id)self];
        [_progIndicator stopAnimation:(id)self];
    } 

    else { 
        [_errormsg orderFront:(id)self];
        [_progIndicator stopAnimation:(id)self];

        }

    }

1 个答案:

答案 0 :(得分:0)

由于您使用的是格式化程序,因此需要请求格式化程序解析该值。

formatter的{​​{1}}方法(NSCell继承自)返回格式化程序对象。 NSTextFieldCell的{​​{1}}方法返回相应的数值。

在这种情况下,将文本字段的字符串值传递给格式化程序的numberFromString:,您应该会看到NSNumberFormatter之类的内容变为numberFromString:(作为整数)。