Повторное использование кодов в двух похожих подклассах Цель C - PullRequest
0 голосов
/ 31 мая 2011

У меня есть немного кода, который я использую, чтобы нарисовать границу вокруг NSTextField при наведении на него курсора и при его редактировании, а также для изменения его размера по вертикали, когда пользователь печатает.Я хочу использовать этот код на NSTokenFieldCell сейчас.Я получил его работать нормально, и реализация идентична как для NSTextField, так и для NSTokenFieldCell.Мне было интересно, есть ли какой-нибудь способ избежать дублирования моего кода между двумя типами классов.Я считаю, что NSTokenFieldCell на самом деле является подклассом NSTextField.

1 Ответ

0 голосов
/ 31 мая 2011

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

Это не идеально, так как мне все еще нужно вручную проксировать методы, которые я переопределяю, например drawRect в каждом классе, но я бы сказал, что он попадает в «достаточно хорошо»категория сейчас.Мне интересно узнать, есть ли у кого-нибудь лучшее решение, которое я могу попробовать.

...