0

我想知道你是否可以帮助我。

我想创建一种情况,如果用户在文本字段中输入特定文本 - 他们将被带到新视图。

我正在努力让它发挥作用 - 我使用以下代码来煽动这一点:

- (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 *screen 中的三行相同的方法)我收到的错误消息是:

-[GameScreen textFieldDoneEditing:]: unrecognized selector sent to instance 0x6c43e20

并且在添加异常断点时 - 绿色箭头停在以 [self presentModal....] 开头的行处,线程突出显示以下内容:

-[GameScreen textField:shouldChangeCharactersInRange:replacementString:]

我真的不知道问题出在哪里。我的印象是,无法识别的选择器问题通常与未正确链接对象有关,但我确信我在这里已经完成了。

有没有人有任何想法?我现在有点卡住了,我相信有人可以提供帮助!

非常感谢!

安迪

4

1 回答 1

0

我怀疑会发生以下情况:

  1. 您在文本字段中;

  2. 当字段内容发生变化时,您会呈现一个模态视图;

  3. 呈现模态视图将尝试通过发送textFieldDoneEditing到您的GameScreen对象来结束编辑会话;

  4. textFieldDoneEditing没有为 定义GameScreen,所以你的程序崩溃了。

解决方法是为您的班级定义该方法。

由于textFieldDoneEditing不是 iOS SDK 的一部分(据我所知),我假设您在 Interface Builder 中将其定义为由文本字段“Editing Did End”事件触发的操作。您还可以适当地修改此绑定以解决问题。

于 2012-06-02T09:36:47.053 回答