Я пытаюсь создать представление для своего рода приложения для мозгового штурма, такого как, например, OmniGraffle, с элементами, которые содержат текстовые представления и могут быть перемещены. (Кроме того, они должны быть подключены стрелками, но это не является (пока) проблемой)
Я сделал домашнее задание, искал в Google и прочитал книги о какао, но, похоже, не было похожего примера.
Поскольку я также новичок в какао, я немного беспомощен здесь.
В чем я уверен, так это в том, что мне нужен собственный вид, в котором я могу создавать свои элементы - до сих пор я пытался это сделать:
Сначала я искал синтаксис для добавления подокон к окну для создания своих элементов. Подокна, как я себе представлял, будут автоматически перемещаться и выходить вперед и так далее.
Проблема: поскольку ваши опытные программисты по какао, вероятно, не удивлены, я был ошеломлен тем, что ничего подобного не обнаружил - кажется, это что-то, что не предназначено в Какао ?!
Затем я подумал о создании подпредставлений, которые содержат настраиваемый вид для чертежа строки заголовка (где пользователь может щелкнуть, чтобы перетащить элемент) и NSTextView
.
Проблемы:
- Я читал, что не очень умно создавать десятки подпредставлений в окне, потому что это будет очень медленно (или это будет не так уж плохо в этом случае, потому что все подпредставления будут экземплярами всегда одного и того же класса?) ).
- Также я не могу узнать, как загрузить подпредставление из nib- или xib-файла. Нужен ли viewController? Или это еще больше усугубит проблему десятков случаев?
- И Apple советует вам не перекрывать подпредставления (хорошо, это было бы не так важно, но мне действительно интересно, как ребята из OmniGroup сделали OmniGraffle ...)
Из-за этого я теперь хотел нарисовать строку заголовка в окружающем пользовательском представлении и создать текстовое представление программно (как я понимаю, текстовое представление не является действительно представлением и берет его функциональность от NSCell, чтобы уменьшить все усилия с представлениями?).
Проблемы:
- Даже это не удалось, потому что я не смог создать текстовое представление, которое не заполняет полное окно (
initWithFrame:
из [[NSScrollView alloc] initWithFrame: aRect]
просто кажется проигнорированным, или я ошибаюсь?).
- Кроме того, в конечном приложении должно быть несколько кнопок для каждого элемента. Я полагаю, что было бы проще сделать с подпредставлением из nib-файла для каждого элемента?
Ну, теперь, когда ничего не работает, и чем больше я читаю, тем больше проблем, кажется, возникает, я довольно растерян и разочарован.
Как я мог реализовать такую программу? Может кто-нибудь, пожалуйста, подтолкнуть меня в правильном направлении?