我希望有一个看起来或多或少像Tweetie中的消息列表(see screenshot)的视图(不,它不会是Twitter客户端,尽管它类似;)。我不确定我应该使用哪些Cocoa视图...我最近为iPhone编写的东西,并且那里只有一个这样的控件(UITableView),但在AppKit中有几个。我应该使用NSTableView,还是NSCollectionView,还是其他更合适的东西?
答案 0 :(得分:5)
NSTableView最适合一般垂直列表。 Tweety看起来可能只是使用自定义的东西。标准的Cocoa类看起来都不像那样。
答案 1 :(得分:2)
更新:我要使用SDListView - 它更新,似乎得到维护(它是Steven Degutis的“TheGist”Twitter客户端的一部分),并且该客户端使用的版本看起来几乎相同在Tweetie中的那个,我有点想扯掉......
更新2(2014):从10.7开始就可以在NSTableView中使用NSViews,所以整个答案已经过时了。对于任何类似UITableView的列表,你现在应该只使用基于视图的NSTableViews,你会没事的。
-
好的,我会自己回答:根据this blog post,我可以使用NSTableView,但这不是一个好主意......:
对于Mac,你有NSTableView,一个使用NSCell对象而不是NSViews的组件的陈旧slug,用于各种历史和性能相关的原因。 NSCell很难定制,并且不能包含NSView对象(没有跳过箍并引入不必要的复杂性),这些是交互式,引人入胜的界面的生命线。 NSCell内部文本范围内的可点击超链接?祝好运!悬停效果和核心动画的光滑度?是的,对!海市蜃楼就像海市蜃楼:远远望去,但是一旦你近距离接触它,你就希望你从未见过它。
我认为Mac的每个原生Twitter应用程序目前的时间表都有所不同。 Loren Brichter基本上编写了一个UITableView端口,以便制作Tweetie的时间表,而Steven Degutis最近一直在为他的Twitter应用程序开发基于NSCollectionView的时间轴。新的Echofon beta时间轴与完全自定义的文本和布局管理器完全不同,它允许在链接上悬停效果,就像它是WebView一样。至于Beak,我不会在这篇文章中详细介绍,但我只是说它是一个完全自定义的NSScrollView,在后台有一些花哨的缓存。
我想我会尝试找到专门为此目的而制作的某种自定义开源控件...我正在考虑来自http://www.harmless.de/cocoa-code.php的AMCollectionView和来自http://github.com/sdegutis/SDListView的SDListView。