0

「[sender rejectFirstResponder]」メソッドを呼び出していませんが、完了ボタンを押すとキーボードが閉じます。完了をクリックしても、開いたままにする必要があります。どうすればこれを行うことができますか?

キーボードを制御する私のアクションは次のとおりです。

- (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

最初に...正直に言うと、私はあなたの問題を抱えたことはありません。キーボードを閉じるには、常に辞任呼び出しを使用する必要がありました。そうしないと、開いたままになります...しかし、これは私があなたのために使用したものです:

1)これを.hファイルに入れます:

-(IBAction) textFieldDoneEditing : (id) sender;

2) これを .m ファイルに入れます。

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

3) ストーリーボードで UITextField を右クリックし、送信イベント "Editing Did End" をビュー コントローラーの textFieldDoneEditing メソッドに設定します。

これで、ユーザーが「Return」または「Done」を押すたびに、キーボードが瞬時に開閉します。それが役に立てば幸い!:)

うまくいかない場合は、私の Xcode プロジェクト (これはうまくいきます) を見てください...ここからダウンロードしてください

于 2012-04-23T22:23:31.100 に答える