2012-07-15 121 views
0

每當「_currentField」(它是一個帶有數字格式化程序的文本字段)的值大於或等於1000時,我希望顯示「_congrats」(它是一個面板)我想要「_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]; 

     } 

    } 
+0

什麼類是currentField? – 2012-07-15 21:21:42

+0

對不起!我應該提到這一點。它是一個文本字段。 – Johnny 2012-07-15 21:22:47

+0

輸入的號碼是怎樣的?例如,如果用逗號輸入「1,000」,那麼解析器可能不夠聰明,不能將其視爲數字,它將返回零。 – 2012-07-15 21:26:28

回答

0

由於您使用的是格式化程序,因此您需要讓格式化程序解析該值。

formatter方法NSCell(即NSTextFieldCell繼承自)返回格式化程序對象。 NSNumberFormatternumberFromString:方法返回適當的數值。

在這種情況下,通過在文本字段的字符串值到格式化的numberFromString:,你應該看到的東西像1,000轉成1000(作爲一個整數)。