2011-03-14 68 views
0

我想在Cocoa應用程序中創建自定義視圖。它基本上是一個記錄視圖,其中來自多個數據庫字段的數據顯示在一個長列表中。這裏有一個快速樣機: record view mockupCocoa應用程序中的自定義記錄視圖

現在有幾件事情要考慮:

  • 字段的數量和類型是動態
  • 字段的格式可能不同(短字段是在同一行, )
  • 該文本是不可編輯的,但它應該是可選的,因此用戶可以將其複製,以便用戶可以複製它

我已經有一些可可的經驗,但我不知道如何最好地創建這個基本的佈局。在iOS中,我可能會使用帶有自定義單元格的UITableView,但NSTableView是非常不同的,可能不適合此應用程序。

幾種想法在我的腦海:

  1. 只需使用一個WebView和創建佈局爲HTML。我有很多HTML經驗,所以佈局應該很容易。另一方面,這似乎是一個骯髒的黑客。
  2. 使用NSAttributedString。由於這個佈局大部分是文本,所以這應該是可能的。然後把它放到只讀NSTextView。這可能很難讓佈局像素完美。
  3. 以編程方式創建大量NSTextField s和NSBox es。布點將會複雜,涉及到很多數學的(但我喜歡數學,所以沒關係)
  4. 創建自定義視圖,並做drawRect:

什麼是最好的解決方案都在畫什麼?我被大量的可用選項所淹沒,我看不出哪個解決方案最乾淨。有沒有人有創建動態數據視圖的經驗?

回答

0

使用NSTextField或NSTextView並將可編輯設置爲NO並啓用可選擇。

+0

我已經在我的問題中提出過這個問題。你能否詳細說明*爲什麼你喜歡這個解決方案? –

+0

因爲您可以免費獲得所有的輔助功能,拖動選擇將不包含標籤等。 –

1

WebView可能是您最快的解決方案。
而最重要的是,用戶永遠不會注意到它。
只有選擇行爲可能不太方便。

其他解決方案(可能是 'bettter和清潔' 一次正確實施):

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

NSScrollView定製NSViews:
http://juliuspaintings.co.uk/cgi-bin/paint_css/animatedPaint/022-NSCollectionView-random.pl

一旦你有NSTabeView/NSScrollView/NSScrollView的一些經驗,
他們幾乎更容易和更快實施然後WebView :)

相關問題