2017-02-15 77 views
1

在我的應用程序中,在註冊屏幕上,我有tableView,它在每個單元格中包含UITextField,在頁腳中包含Submit按鈕。一切正常,除非我在最後的TextField中輸入值並點擊提交按鈕(不退出鍵盤)。我的功能沒有顯示值,因爲僅當文本編輯結束時才輸入值。我正在使用委託來獲得價值。iOS UITextField resignFirstResponder問題

我的代碼是:
在customcell.m:

- (void)textFieldDidEndEditing:(UITextField *)textField { 
    if ([textField.text length] >0) { 
    [self.cellImageview setImage:editImage]; 
    } 
    else{ 
    [self.cellImageview setImage:defaultImage]; 
    } 
    [_delegate signUpTableCell:self didUpdateValue:textField.text inTextField:textField]; 
} 

在我的viewController:

-(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField { 
    NSLog(@"cell:%@ value: %@ textfield value:%@ ", cell, value, textField.text); 
    [registerDictionary setValue:value forKey:textField.placeholder]; 
    NSLog(@"registerDictionary:%@", registerDictionary); 
} 

問題:

最後文本字段值是零,當我點擊在提交按鈕上,可能是因爲 除非textField結束編輯,否則 不會接到呼叫。如果我在空曠的地方點擊並放棄鍵盤,它就可以正常工作。有沒有解決這個問題的工作?

回答

1

您是否嘗試在單擊按鈕時手動撥打resignFirstResponder()

+0

是的,我沒有,沒有工作。它辭去第一響應者,但無法獲得值 –

+0

因此,你的鍵盤實際上消失了,你的'textFieldDidEndEditing()'方法被調用,但didUpdateValue()'不被調用?你能否通過手動調用'resignFirstResponder()'來調用這些方法? –

1

添加以下代碼在提交按鈕:

[self.view endEditing:yes]; 

或使用

[self.yourTableview.scrollView endEditing:yes]; 
+0

已經做到了這一點,但我仍然不會得到registerDictionary數組中的值 –

0

在我的代碼做一些改變固定它。在我從registerDictionary獲得值後,我使用[self.view endEditing:yes];。我愚蠢。