TextField辞职FirstResponder将在ios 7中崩溃
我正在将TextField辞职FirstResponder将在ios 7中崩溃,ios,iphone,uitableview,ios7,uitextfield,Ios,Iphone,Uitableview,Ios7,Uitextfield,我正在将自定义单元格与XIB一起使用。现在我滚动表格,使包含TextField的单元格不可见。在这种情况下,如果我返回textField(意味着我调用[textField resignFirstResponder]),应用程序将崩溃并给出如下错误 [UITableViewCell _didChangeToFirstResponder:]: message sent to deallocated instance 0xe05aa20. 如果您对此有任何想法,请告诉我。您应该检查以下几项: 1)
自定义单元格
与XIB一起使用。现在我滚动表格,使包含TextField的单元格不可见。在这种情况下,如果我返回textField(意味着我调用[textField resignFirstResponder]
),应用程序将崩溃并给出如下错误
[UITableViewCell _didChangeToFirstResponder:]: message sent to deallocated instance
0xe05aa20.
如果您对此有任何想法,请告诉我。您应该检查以下几项: 1) 在
cellforrowatinexpath
delegate中,当您使用dequeueReusableCellWithIdentifier
时,应将此视图的endEditing
设置为YES,如下所示:
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];
[cell setEndEditing:YES];
if(!cell)
{
// Rest of the logic goes here
}
CustomCell*单元格=[tableView dequeueReusableCellWithIdentifier:@“identifier”];
[单元格设置编辑:是];
如果(!单元格)
{
//其余的逻辑在这里
}
2) 不要忘记将UITableViewDelegate设置为
self
,它应该表示一个活动类。所以当委托函数调用时,类存在。您需要检查您的文本字段是否是第一响应者。如果是这样的话,你可以安全地辞职
隐藏myTextField的键盘
if ([myTextField isFirstResponder]) {
[myTextField resignFirstResponder];
}
辞去视图中任何子视图的第一响应者
for (UIView *aSubView in self.view.subviews) {
if ([aSubView isFirstResponder]) {
[aSubView resignFirstResponder];
//break;
}
}
使用以下方法解决辞职FirstResponder的问题:
[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;
}
你能发布一些代码吗?确认第一个UITextField委托不应该为零,设置它然后再试,希望它能工作。你在textField中编辑后辞职吗?从哪里调用
[textField resignFirstResponder]