2012-07-30 49 views
1

我創建一個IBAction爲類似如下:cocoa:NSbutton sender intValue的含義是什麼?

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

當我反覆按一下按鈕,代碼打印出1,0,1,0,1,0。我想知道發件人的intValue的含義。 引用是將接收者的值作爲int返回。 但我不知道這是什麼意思。

回答

2

這將是NSButton狀態,這是一個NSInteger,但你應該使用此枚舉來代替:直到你點擊它

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

按鈕通常會在NSOffState,並更改爲NSOnState,那麼接下來點擊再次更改 - 對於一個簡單的按鈕,您不會直觀地看到此狀態,但對於某些按鈕類型(如複選框),狀態將以可視方式顯示。

的這裏sender將是你NSButton,這將是更正確使用state而非intValue(但你需要將其轉換爲NSButton第一)。

+0

這真的很有幫助,非常感謝你 – NOrder 2012-07-31 04:41:24

+0

使用NSOnState/NSOffState和只是數字1/0有什麼區別嗎? – Ziofil 2014-09-28 05:38:45

+0

區別在於清晰度,'NSOnState'記錄您的代碼。否則不。 – MattR 2014-09-28 06:40:43