Я хочу создать собственное представление в приложении Какао. В основном это представление записей, в котором данные из нескольких полей базы данных отображаются в виде длинного списка. Вот быстрый макет:
![record view mockup](https://i.stack.imgur.com/sc3Na.png)
Теперь нужно рассмотреть несколько вещей:
- Число и тип полей являются динамическими
- Поля могут быть отформатированы по-разному (короткие поля находятся в одной строке, длинные поля - в отдельном абзаце. В будущем изображения также могут быть включены).
- Текст недоступен для редактирования, но его можно выбрать, чтобы пользователи могли его скопировать
У меня уже есть некоторый опыт работы с Какао, но я не знаю, как мне лучше всего создать этот базовый макет. В iOS я, вероятно, использовал бы UITableView с пользовательскими ячейками, но NSTableView сильно отличается и, вероятно, не подходит для этого приложения.
Мне приходит в голову несколько идей:
- Просто используйте
WebView
и создайте макет как HTML. У меня большой опыт работы с HTML, поэтому верстка должна быть простой. С другой стороны, это похоже на грязный хак.
- Используйте
NSAttributedString
. Поскольку этот макет в основном текстовый, это должно быть возможно. Тогда просто поместите это в только для чтения NSTextView
. Может быть трудно получить макет, идеально подходящий для пикселей.
- Создавайте множество
NSTextField
s и NSBox
es программно. Макетирование будет сложным и потребует много математики (но я люблю математику, так что все в порядке)
- Создание пользовательского вида и рисование в
drawRect:
Какое лучшее решение? Я поражен количеством доступных вариантов и не могу понять, какое решение является самым чистым. У кого-нибудь есть опыт создания динамических представлений данных?