Jestem nowy w firmie Cocoa i poszukuję porady na temat aplikacji od doświadczonych kakaorzy.Porady dotyczące aplikacji do rysowania kakao
Buduję podstawową aplikację typu OmniGraffle, w której obiekty są rysowane/przeciągane na płótno. Po umieszczeniu obiektów na płótnie można je wybrać, aby zmodyfikować ich właściwości (kolor wypełnienia, kolor/szerokość obrysu itd.), Zmienić rozmiar, przesunąć do nowej pozycji itp.
Aby się rozgrzać, Napisałem podstawową aplikację do rysowania, która tworzy obiekty (okręgi, prostokąty itp.), Jak rysuje mysz na niestandardowym NSView
, dodaje obiekty do kolekcji NSArray
i renderuje zawartość kolekcji do widoku. Mógłbym kontynuować w tym duchu, ale będę musiał dodać obsługę wykrywania obiektów, rozwiązywania z-indeksowania, podświetlania fokusa, przeciągania uchwytów itp. Z wszystkimi powiązanymi renderingami. Co więcej, renderowanie każdego obiektu w każdym cyklu wydaje się strasznie marnotrawstwem.
Wygląda na to, że lepszym rozwiązaniem byłoby upuszczenie lekkich obiektów widoku na płótno, które było w stanie wykryć zdarzenia myszy, narysować siebie i ich pierścienie ostrości, i tak dalej. Jednak, podczas gdy NSView
wydaje się być obiektem o tych właściwościach, widzę dużo gadania w sieci o tym, że jest to komponent wagi ciężkiej z dużym bagażem. Natknąłem się na NSCell
s i przeczytałem o nich, ale nie jestem pewien, czy są one właściwą alternatywą.
Wszelkie sugestie? Jeśli możesz mnie popchnąć we właściwym kierunku, bardzo bym to docenił.
Zdecydowanie odradzam używanie 'NSCell'. Nawet 'NSTableView' odszedł od niego w swojej najnowszej iteracji. 'NSCell' nie jest fajnie pracować. –
Chciałbym także * gorąco * polecić spojrzenie na przykład szkicu (myślę, że obecny nazywa się "Szkic + dostępność", jeśli przeszukujesz dokumenty), jeśli jeszcze tego nie zrobiłeś. Jest tam wiele dobrych pomysłów. –