Тут напрашивается один из трех выводов:
1. Либо Вы весьма невнимательны и пропустили предложение про "protected" и создание отдельного класса просто для того, чтоб перенести фокус ввода. И тот факт, что для переноса каретки приходится делать отдельный класс - действительно является нагромождением. (кстати, в пользу невнимательности говорит и тот факт, что Вы начали писать просто про фокус, несмотря на то, что изначально речь шла о фокусе ввода)
2. Либо Вы не понимаете, что поля и методы, находящиеся под директивой "protected", не доступны пользователям класса. И не понимаете- почему нужно делать новый класс.
3. Либо (самое ужасное) создание нового класса с методом, позволяющим переносить фокус ввода в заданную ячейку, Вы делаете в одну строку кода .