Во-первых, вы проверяете количество символов в событии, которое почти всегда равно 1. Наиболее распространенный способ получить более 1 символа в событии - это использование метода ввода IME для незападных символов.
Неясно, чего вы пытаетесь достичь. Если вы попытаетесь отреагировать на пользователя, нажав и удерживая клавишу, вы получите несколько событий keyDown :. Вызов isARepeat для первого события вернет NO, для последующих событий он вернет YES.
Если вы пытаетесь обнаружить несколько нажатий клавиш одновременно, вам необходимо самостоятельно отслеживать состояния клавиш между keyDown: и keyUp :. Таким образом, если вы нажмете f и g одновременно, вы получите одно keyDown или несколько keyDown: с f и одно или несколько keyDown: с g. затем, если вы отпустите f, удерживая g, вы получите keyUp: для f, продолжая при этом получать keyDown: для g. Вы можете установить флаг для каждого ключа, который вы получаете, а затем сбросить флаг, когда ключ поднимется.
Если ничего из этого вы не пытаетесь сделать, то, возможно, вы захотите объяснить, что вы делаете дальше.