gpt4 book ai didi

objective-c - Cocoa 应用程序中的自定义记录 View

转载 作者:行者123 更新时间:2023-12-03 18:02:11 25 4
gpt4 key购买 nike

我想在 Cocoa 应用程序中创建自定义 View 。它基本上是一个记录 View ,其中来自多个数据库字段的数据显示在一个长列表中。这是一个快速模型: record view mockup

现在有几件事需要考虑:

  • 字段的数量和类型是动态的
  • 字段的格式可能不同(短字段在一行中,长字段在单独的段落中。将来也可能包含图像。)
  • 文本不可编辑,但应可选择,以便用户可以复制

我已经有一些 Cocoa 经验,但我不知道应该如何最好地创建这个基本布局。在 iOS 中,我可能会使用带有自定义单元格的 UITableView,但 NSTableView 非常不同,可能不适合此应用程序。

我想到了几个想法:

  1. 只需使用 WebView 并将布局创建为 HTML。我对 HTML 有很多经验,所以布局应该很容易。另一方面,这似乎是一种肮脏的黑客行为。
  2. 使用NSAttributedString。由于此布局主要是文本,因此这应该是可能的。然后将其放入只读的 NSTextView 中。可能很难获得像素完美的布局。
  3. 以编程方式创建大量 NSTextFieldNSBox。布局会很复杂,涉及很多数学(但我喜欢数学,所以没关系)
  4. 创建自定义 View 并在drawRect中进行所有绘制:

最好的解决方案是什么?我对可用的选择数量感到不知所措,而且我看不出哪种解决方案是最干净的。有人有创建动态数据 View 的经验吗?

最佳答案

WebView 可能是您最快的解决方案。
最重要的是,用户永远不会注意到它。
只是选择行为可能不太方便。

其他解决方案(一旦正确实现,可能会“更好、更干净”):

带有自定义单元格的 NSTabeView:
http://www.martinkahr.com/2007/05/04/nscell-image-and-text-sample/
http://juliuspaintings.co.uk/cgi-bin/paint_css/animatedPaint/070-NSTableView-ImageAndTextCell.pl

带有自定义 NSView 的 NSScrollView:
http://juliuspaintings.co.uk/cgi-bin/paint_css/animatedPaint/022-NSCollectionView-random.pl

一旦您获得了 NSTabeView/NSScrollView/NSScrollView 的一些经验,
它们比 WebView 更容易、更快地实现:)

关于objective-c - Cocoa 应用程序中的自定义记录 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com