我想知道你是否可以帮助我。
我想创建一种情况,如果用户在文本字段中输入特定文本 - 他们将被带到新视图。
我正在努力让这个工作 - 我使用以下代码来煽动这个:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([string isEqualToString:@"\n"]) {
NSString *lowercaseactualanswer = [footballersurname lowercaseString];
NSString *lowercaseuseranswer = [textField.text lowercaseString];
if ([lowercaseuseranswer isEqualToString:lowercaseactualanswer])
{
CorrectScreen *screen = [[CorrectScreen alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:screen animated:YES];
}
else {
self.guess.text = [[NSString alloc]initWithFormat: @"%@ is incorrect", textField.text];
textField.text = @"";
}
}
return YES;
}
并且我使用相同的方法成功导航到我的代码中其他地方的不同屏幕(使用与CorrectScreen *屏幕中的三行相同的方法)我收到的错误消息是:
-[GameScreen textFieldDoneEditing:]: unrecognized selector sent to instance 0x6c43e20
并且在添加异常断点时 - 绿色箭头停在以[self presentModal ....]开头的行,并突出显示以下内容:
-[GameScreen textField:shouldChangeCharactersInRange:replacementString:]
我真的不知道问题出在哪里。我的印象是,一个无法识别的选择器问题通常与没有正确链接对象有关,但我确信我已经在这里完成了。
有没有人有任何想法?我现在有点陷入困境,我相信那里的人可以提供帮助!
非常感谢!
安迪
答案 0 :(得分:0)
我怀疑会发生以下情况:
您在文本字段中;
当字段内容发生变化时,您会显示模态视图;
展示模态视图会尝试通过将textFieldDoneEditing
发送到您的GameScreen
对象来结束编辑会话;
textFieldDoneEditing
未定义为GameScreen
,因此您的程序崩溃了。
修复方法是为您的班级定义该方法。
由于textFieldDoneEditing
不是iOS SDK的一部分(据我所见),我假设您在Interface Builder中将其定义为由文本字段“Editing Did End”事件触发的操作。您还可以适当地修改此绑定,以解决问题。