Я пытаюсь создать NSTextView, который ведет себя как серия страниц пишущей машинки - каждая страница имеет фиксированное количество доступных строк и столбцов.Жесткая упаковка в NSTextView
Основное представление идеально соответствует дисплею, который, в свою очередь, соответствует формату файла. Страницы заканчиваются символом формы '\f'
. Например, два 4x4 страницы будут выглядеть при сохранении (пробелы между символами для удобства чтения):
T H I S \n
P A G E \n
I S \n
F U L L \n
\f
N O T \n
T H I S \n
O N E \n
\n
\f
Несколько вещей, чтобы заметить:
- Newlines и форм-каналы не сосчитать в строк/столбцы всего
- Линия короче, чем количество столбцов не заполняется конечными пробела (хотя они могут быть, если редактор работал в режиме перезаписи)
- Страницы короче, чем количество строк являются проложенным ш Ith Newlines
Я попробовал несколько подходов, как преобразование текста в NSArray
линиях и расщепление длинных линий на каждом textDidChange
уведомления, а затем установить текст в сцепленные строки, но это действительно неэффективно, и теряет курсор если ввод текста происходит в любом месте, кроме конца документа.
В конце концов, я думаю, что мне бы хотелось, чтобы это было как большая страница, заполненная пробелами, а ввод текста происходит только в режиме перезаписи, но обертывается в конце строк. Я не знаю, с чего начать этот подход. Какие-либо предложения?
Возможно, более простой вопрос? Я не уверен, лучшее место для решения этого вопроса - в текстовом представлении, диспетчере компоновки, наборе текста, текстовом хранилище или в другом месте. Может быть, только указатель в правильном направлении будет достаточно, чтобы понять остальное. – squidpickles