2014-02-28 33 views
0

我試圖隨機制作兩個UILabel。標籤的內容是int我也嘗試一旦UITextField中的輸入正確,以給出兩個UILabel新值。我的問題是:如何在輸入正確的用戶輸入後立即發送UITextView任務,爲兩個UILabel輸入新值?UITextField中的隨機標籤值

這裏是我試圖鏈接到UITextField的操作。

- (IBAction)randomDef:(id)sender { 
    int valueFromTextField = rand() % 100; 

    int positiveNumber = 0; 

    float x = ([firstNumber.text floatValue]); 
    float y = ([secondNumber.text floatValue]); 

    int ans = x + y; 

    switch (valueFromTextField) { 
     case 0: 

      firstNumber.text = [NSString stringWithFormat:@"%d", valueFromTextField]; 
      secondNumber.text = [NSString stringWithFormat:@"%d", valueFromTextField]; 

      if (textField.text == [NSString stringWithFormat:@"%d", ans]) { 

       positivePoints.text = [NSString stringWithFormat:@"%d", positiveNumber++]; 
       valueFromTextField++; 
      } 
      break; 

     default: 
      break; 
    } 
} 

回答

1

您可以使用通知這樣

// Add a "textFieldDidChange" notification method to the text field control. 
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 

在你的類可以實現textFieldDidChange:和你的代碼移動到這個功能

-(void)textFieldDidChange :(UITextField *)theTextField 
{ 
    // code here 
} 
+0

謝謝!我只是想知道這個switch-statement是否可以工作。無論是來自textField ++的值還是0: – olivier

+0

在您的代碼中,valueFromTextField ++;都是無用的。 – Merlevede

0

可以使用UITextFieldDelegate協議,以在UITextField變化做出反應。使你的課程符合UITextFieldDelegate協議,設置textfield.delegate,然後實施代理方法,如-textFieldDidBeginEditing:-textFieldDidEndEditing:。如果要響應用戶按下該字段中的返回鍵,請使用-textFieldShouldReturn:

UITextFieldDelegate Apple documentation

+0

謝謝你的身體!但是什麼是--textFieldShouldReturn :. – olivier

+0

'-textFieldShouldReturn'是一個'UITextFieldDelegate'方法,當用戶在文本字段中點擊返回(通常在鍵入一些值之後)時被調用。因此,如果您希望他們輸入「20」並點擊返回,則會響應返回按鍵調用「-textFieldShouldReturn:」。 – bneely