我正在製作一個有四個NSTextField框的小程序。每個盒子通過一個公式與其他盒子相關。基本上,我現在正在工作,在你點擊開箱後,它會計算出其他的盒子(你可以在任何盒子裏輸入數字)。需要計算Objective-C中每次按鍵後的字段(四個NSTextField)
我想要的是在每次按鍵後,我想調用方框的動作來計算其他方框。所以,結果應該立即發生,不僅在點擊盒子或擊打標籤後,等等。
我還在學習ObjC,所以,雖然我試圖檢查文檔,但他們沒有似乎直接適用於我的問題。
我已經定義了以下措施:
- (IBAction)boxX1:(id)sender;
- (IBAction)boxY1:(id)sender;
- (IBAction)boxX2:(id)sender;
- (IBAction)boxY2:(id)sender;
對於每一個,有一些代碼,調用正確的方式計算功能...
因此,基本的問題是..我如何看keyDown:events,特別是,知道boxX1與boxY2發生了keyDown事件,並且能夠獲取這些框的內容(在keyDown事件之後)並執行我的計算?
例如,下面是boxX2代碼:
- (IBAction)boxY2:(id)sender {
self.boxX2.stringValue = [ARCBrain calculateRatio:self.boxX1.stringValue times:self.boxY2.stringValue dividedBy:self.boxY1.stringValue];
}
我只需要能夠每按一次鍵來調用它..似乎很容易,不是嗎?
感謝
你將不得不繼承實際的按鍵事件,而你不想要那些事情,因爲你必須自己將它們解釋爲文本。您需要創建一個文本字段委託並監視文本更改通知。見:http://stackoverflow.com/questions/6164471/listen-to-a-value-change-of-my-text-field – 2012-04-19 17:32:01
對不起,我還在學習ObjC,所以,發現很難掌握如何實現這個..我已經添加了更多我以上使用的代碼。也許這會更有意義?我試圖實現controlTextDidChange:但方法永遠不會被調用它似乎.. – DrDavid 2012-04-19 17:53:59
你必須確保實現'controlTextDidChange:'的對象實際上被設置爲各種文本字段的代表。在Interface Builder中(字段有一個「委託」出口)或'awakeFromNib:':'[boxX2 setDelegate:self];' – 2012-04-19 18:42:52