2014-01-28 53 views
1

我正在使用custom cell與XIB。現在,我滾動表格,讓具有textFiled的單元格不可見。在如果我返回文本框此條件下(指我稱之爲[textField resignFirstResponder])的應用程序會崩潰,並給予錯誤,如TextField resignFirstresponder會崩潰在ios 7

[UITableViewCell _didChangeToFirstResponder:]: message sent to deallocated instance 
0xe05aa20. 

請讓我知道如果您對此有什麼想法。

+1

你能發表一些代碼嗎? – KudoCC

+0

你是否在文本文件編輯後辭職? – iSwaroop

+0

從你調用'[textField resignFirstResponder]' – Akhilrajtr

回答

0

您應該檢查兩件事情:

1)cellForRowAtIndexPath委託,當您使用dequeueReusableCellWithIdentifier你應該設置endEditing爲YES這個觀點是這樣的:

 
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"]; 
[cell setEndEditing:YES]; 

if(!cell) 
{ 
    // Rest of the logic goes here 
} 

2)不要忘記將UITableViewDelegate設置爲self,這應該代表一個實時類。所以當委託函數調用時,類存在。

0

您需要檢查您的TextField是否是第一響應者。如果是,那麼你可以辭職它myTextField將

if ([myTextField isFirstResponder]) { 

    [myTextField resignFirstResponder]; 

} 

安全

隱藏鍵盤要辭職的任何子視圖急救員在視圖

for (UIView *aSubView in self.view.subviews) { 

    if ([aSubView isFirstResponder]) { 

     [aSubView resignFirstResponder]; 

     //break; 

    } 
} 
0

使用下面的方法來解決發出resignFirstResponder:

[self resignFirstResonder:self.view]; 

- (BOOL)resignFirstResonder:(UIView *)textView 
{ 
    keyBoardShow = NO; 
    if(badgeHasFullInfo == YES) 
    { 
     if (textView.isFirstResponder) 
     { 
      [textView resignFirstResponder]; 
      return YES; 
     } 

     for (UIView *subView in textView.subviews) 
     { 
      if ([self findAndResignFirstResonder:subView]) 
      { 
       return YES; 
      } 
     } 
    } 
    return NO; 
}