Не приостанавливайте основной поток, так как основной поток отвечает за обработку событий , и пользовательский интерфейс вашего приложения перестает отвечать на запросы. Если основной поток приостановлен, он не будет обрабатывать события, поэтому он не будет отправлять ключевые события первому респонденту.
Если вы считаете, что вам нужно приостановить основной поток, вам, вероятно, нужно изменить дизайн программы, чтобы поведение, которое требует спящего режима (если оно требует спящего режима), было смещено во вторичный поток. Если вам нужно обновить интерфейс пользователя из вторичного потока, вы должны использовать -performSelectorOnMainThread:withObject:waitUntilDone:
.