Iphone UITextField-辞职FirstResponder失败
我最近更新了XCode(4.2版iOS5 SDK),现在我的应用程序每次使用“辞职第一响应者”时都会抛出EXC_BAD_访问 我熟悉内存管理,检查之前没有发布任何内容。。。疯狂的部分是“成为第一反应者”会起作用 工作罚款:Iphone UITextField-辞职FirstResponder失败,iphone,uitextfield,ios5,exc-bad-access,resignfirstresponder,Iphone,Uitextfield,Ios5,Exc Bad Access,Resignfirstresponder,我最近更新了XCode(4.2版iOS5 SDK),现在我的应用程序每次使用“辞职第一响应者”时都会抛出EXC_BAD_访问 我熟悉内存管理,检查之前没有发布任何内容。。。疯狂的部分是“成为第一反应者”会起作用 工作罚款: if(_TextField==input){ [inputPassWord becomeFirstResponder]; } else { [input becomeFirstResponder]; } 失败: if(_TextField==input){
if(_TextField==input){
[inputPassWord becomeFirstResponder];
}
else
{
[input becomeFirstResponder];
}
失败:
if(_TextField==input){
[inputPassWord becomeFirstResponder];
}
else
{
[_TextField resignFirstResponder];
}
知道会是什么吗
谢谢 不确定这是否有帮助,但第二个示例中的逻辑正确吗 第一个看起来像是检查哪个TextField做了什么,然后在另一个上设置firstResponder 第二个似乎什么也不做,因为如果输入不是要测试的文本字段,它只调用
[input resignFirstResponder]
您是否尝试过在第二个示例中切换两行代码,或使用=代码>而不是==
。也许值得一试
虽然我不认为这会引起您的问题,但我对这一点很陌生。是否可能输入不是当时的第一响应者?不要这样认为if(_TextField==input){[inputPassWord becomeFirstResponder];}else{if([_textfieldisfirstresponder]){NSLog(@“YES”);[_textfieldresignfirstresponder];}/[inputPassWord resignFirstResponder];}
正在记录“YES”那么失败可能是becomeFirstResponder导致了它被保留?您是否尝试过在resignFirstResponder行之后直接插入NSLog()以查看这是否是失败?或者,如果这是通过一系列子视图进行的某种迭代,您确定_TextField实际上是一个TextField吗?我的意思是,如果你用“输入”而不是“文本字段”来运行它,它会失败吗。。。在if/else块工作后立即注销。。。我猜当它离开-(BOOL)TextField应该返回:(UITextField*)\u TextField
时出错了,明白了!原来我是从以下位置返回“是”:(BOOL)TextField shouldlreturn:(UITextField*)\u TextField
,因为我没有使用常规行为,所以它是不合适的。回答“不”就像一个咒语!谢谢大家!