0

我没有调用“[sender resignFirstResponder]”方法,但是当按下完成按钮时我的键盘仍然关闭。我需要它保持打开状态,即使我点击完成。我该怎么做呢?

这是我控制键盘的操作:

- (IBAction)returnKeyButton:(id)sender {

BOOL guessCorrect = [gameModel checkGuess:guessTextField.text];

guessTextField.text = @"";

if (guessCorrect) {
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef soundFileURLRef;
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"rightAnswer", CFSTR ("mp3"), NULL);


    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
    AudioServicesPlaySystemSound(soundID);
    if (gameModel.score == 10) {
        CFBundleRef mainBundle = CFBundleGetMainBundle();
        CFURLRef soundFileURLRef;
        soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"win", CFSTR ("mp3"), NULL);


        UInt32 soundID;
        AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
        AudioServicesPlaySystemSound(soundID);

        [self endGameWithMessage:@"You win!"];
    } else {
        scrambledWord.text = [gameModel getScrambledWord];
    }

}
remainingTime.text = [NSString stringWithFormat:@"%i", gameModel.time];
playerScore.text = [NSString stringWithFormat:@"%i", gameModel.score];
}
4

1 回答 1

0

首先...说实话,我从来没有遇到过你遇到的问题。我总是不得不使用 resign 调用来关闭键盘,否则它会保持打开状态......但是,这就是我为你使用的:

1)把它放在.h文件中:

-(IBAction) textFieldDoneEditing : (id) sender;

2)把它放在 .m 文件中:

-(IBAction) textFieldDoneEditing : (id) sender{
    [sender resignFirstResponder];
    [sender becomeFirstResponder];
}

3) 右键单击​​情节提要中的 UITextField 并将 Sent 事件“Editing Did End”设置为视图控制器中的 textFieldDoneEditing 方法。

现在,只要用户按下“返回”或“完成”,键盘就会立即打开和关闭。希望能帮助到你!:)

如果它不起作用,请查看我的 Xcode 项目(确实有效)...在此处下载

于 2012-04-23T22:23:31.100 回答