keyDown: дает только символы для клавиши, которую вы нажимаете в данный момент. Символы, которые принимают более одного нажатия клавиши, отображаются как отдельное нажатие клавиши: вызов для каждого нажатия клавиши. Если вы хотите видеть напечатанные символы вместо отдельных нажатий клавиш, переопределите -insertText: вместо этого.