Я закончил тем, что вытащил всю свою пользовательскую функциональность в отдельный класс NSObject, а затем дал экземплярам этого класса мои классы NSTextField и NSTokenField, а затем просто проксировал всю пользовательскую логику в свой «логический» объект, используя - (id) forwardingTargetForSelector: (SEL) aSelector
Это не идеально, так как мне все еще нужно вручную проксировать методы, которые я переопределяю, например drawRect в каждом классе, но я бы сказал, что он попадает в «достаточно хорошо»категория сейчас.Мне интересно узнать, есть ли у кого-нибудь лучшее решение, которое я могу попробовать.