2012-04-23 2 views
0

У меня нет метода «[sender resignFirstResponder]», но моя клавиатура все еще закрывается, когда нажата кнопка «Готово». Мне нужно, чтобы он оставался открытым, даже когда я нажимал. Как я могу это сделать?iOS UITextField держит клавиатуру на экране

Вот мое действие, которое управляет клавиатурой:

- (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]; 
} 
+0

мне любопытно ... почему? – citruspi

+0

Дело в том, что вы догадались, ответ на проблему. Как сейчас, я могу угадать ответ, используя ключ «return», но всякий раз, когда я его нажимаю, клавиатура закрывается. Раздражает необходимость снова нажимать текстовое поле каждый раз, когда я хочу ввести ответ. –

+0

Дайте мне несколько минут ... У меня есть идея :) – citruspi

ответ

0

... Во-первых, если честно, я никогда не имел проблемы у вас есть. Я всегда должен был использовать уволиться вызовом, чтобы закрыть клавиатуру или она будет оставаться открытой ... Но, это то, что я для вас:

1) Поместите это в файле .h:

-(IBAction) textFieldDoneEditing : (id) sender; 

2) Поместите это в файле .m:

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

3) щелкните правой кнопкой мыши UITextField в раскадровке и установите Отправленные событие «Редактирование ли End» методу textFieldDoneEditing в контроллере представления.

Теперь, когда пользователь нажимает «Return» или «Done», клавиатура будет открываться и закрываться мгновенно. Надеюсь, поможет! :)

Если он не работает, посмотрите на мою Xcode проекта (который делает работу) ... download it here

Смежные вопросы