Обновление : Я собираюсь использовать SDListView - он более новый, кажется, поддерживается (это часть Twitter-клиента Стивена Дегутиса "TheGist"), и версия, используемая в этом клиенте, выглядит почти идентично тот в Tweetie, который я как бы хотел сорвать в любом случае ...
Обновление 2 (2014) : Начиная с 10.7, можно использовать NSViews в NSTableView, поэтому весь этот ответ устарел. Для любых списков, подобных UITableView, вы должны просто использовать NSTableView на основе представления, и все будет в порядке.
-
Хорошо, я отвечу сам: согласно этому сообщению в блоге , я мог бы использовать NSTableView, но это не очень хорошая идея ...:
Для Mac у вас есть NSTableView, устаревшая порция компонента, которая использует объекты NSCell вместо NSViews по различным причинам, связанным с историей и производительностью. Ячейки NSC сложно настраивать и они не могут содержать объекты NSView (без прыжков через обручи и внесения ненужных сложностей), которые являются источником жизненной силы интерактивного, привлекательного интерфейса. Кликабельные гиперссылки внутри диапазона текста внутри NSCell? Удачи! Эффекты при наведении курсора и Core Animation Slickness? Да правильно! NSCell походит на мираж: это выглядит хорошо издалека, но как только вы подходите близко к нему, вам хочется, чтобы вы никогда не видели его с самого начала.
Я думаю, что каждое родное приложение Twitter для Mac в настоящее время делает что-то свое для своей временной шкалы. Лорен Брихтер, по сути, написал порт UITableView для создания временной шкалы Tweetie, а Стивен Дегутис недавно работал над временной шкалой на основе NSCollectionView для своего приложения Twitter. Новая временная шкала бета-версии Echofon представляет собой нечто совершенно иное с полностью настраиваемым менеджером текста и макета, который позволяет создавать эффекты наведения на ссылки, как если бы это был WebView. Что касается Beak, я не буду вдаваться в подробности этой записи, но просто скажу, что это полностью настраиваемый NSScrollView с некоторым необычным кэшированием в фоновом режиме.
Я думаю, что я попытаюсь найти какой-то специальный элемент управления с открытым исходным кодом, созданный специально для этой цели ... Я рассматриваю AMCollectionView из http://www.harmless.de/cocoa-code.php и SDListView из http://github.com/sdegutis/SDListView.