Поскольку я тот, кто поставит вас в (надеюсь, полезный :-)) проблемы использования Scintilla, я здесь.
Допустим, мы создаем ScintillaView
подкласс, названный ppScintillaEditor
. Файл должен иметь .mm
расширение (например, ppScintillaEditor.mm
)
код будет примерно так ...
Интерфейс
#import "Scintilla/ScintillaView.h"
@interface ppScintillaEditor : ScintillaView
{
// your iVars
}
// your properties/methods/whatever
Теперь, как и для реализации части, не забудьте поставить некоторый метод инициализации, чтобы правильно настроить представление (как в примере, сопровождающем Scintilla-cocoa, я имею в виду проект тестирования)
Sidenote: Конечно, вы можете создавать подклассы, категории или что-то на вершине ScintillaView
класс, в значительной степени основаны на том, что вам нужно - я, к примеру, создать отдельную категорию только для того, чтобы группы там некоторые ScintillaView
конкретных команд (рано или поздно вы заметите, что для некоторых более продвинутых манипуляций с Scintilla, хотя он есть, может потребоваться некоторое полирование, чтобы быть немного более удобным для какао, поэтому здесь вы идете ...)
Теперь, наконец, но не в последнюю очередь ...
Для решительность"bunch of errors related to the C++ class keyword and so on"
, так как я показал в моем другом видео-ответ на ваш комментарий, все, что вам нужно сделать, это :
И это все. :-)
Подсказка: выше определяются Scintilla, чтобы избежать столкновений между С и не-С элементами, как выше ... так, все, что нужно, чтобы уведомить препроцессор и остальные позаботился ....
извините, им все еще немного зеленый, чтобы следить за этим. Моя реализация представляет собой файл '.mm' или файл' .m'? в настоящее время это всего лишь файл '.m', мне нужно будет переименовать его в' .mm', чтобы это работало? – horseyguy
yes - '.mm' для этого объекта-обертки. затем объявите свои ivars (объекты сцинтиллы) здесь: '@implementation MONScintillaWrapper {scintilla :: t_thingy scintillaThingy; } '. таким образом, остальной части вашей программы не нужно видеть ваши спермиллы ivars или источники C++. – justin
расширенный ответ, чтобы проиллюстрировать этот подход. – justin