0

次のNSTableViewを表示しようとしています。

| サムネイル| ファイル名|

IBでNSTableViewを作成し、それをクラスに委任しました。クラスでは、POC実装を取得するためだけにモデルをバイパスし、データソースデリゲートメソッドを作成しました。それらはテキストセルにうまく入力されます。ただし、現在、最初のセルに画像の小さなサムネイルを含める必要がある段階にあります。

私がやりたいこと(そしてそれはばかげていると確信しています-シンプルです)は画像アイコンをつかむことです-そしてすべてのファイルがjpegであり、サムネイルが埋め込まれていると仮定するのは公正です-そしてそのアイコンを64x64に拡大縮小してテーブルに入れます細胞。サムネイルを生成する方法についてはたくさんのコードがありますが、コードを機能させるためのコードはあまりありません。これが私が持っているものです:

  # This works if I am only populating text values in the when 'Image'
  def tableView_objectValueForTableColumn_row_(image_table, column, row)
    thumbnailImage(75)
    case column.headerCell.stringValue
      when 'File Name'
        (0..99).to_a[row].to_s
      when 'Image'
        # here's where I want to return a square 64x64 image or ImageCell
        thumbnailImage(64)
      else
        '???'
    end
  end

  # Creates square thumbnail
  def thumbnailImage(size)
    file = "file://localhost/Users/sxross/Downloads/iStock_000004561564XSmall.jpg"
    image = CGImageSourceCreateWithURL(CFURLCreateWithString(nil, file, nil), nil)
    thumb = CGImageSourceCreateThumbnailAtIndex(image, 0, nil)
    thumb
  end

  def numberOfRowsInTableView(view)
    100
  end

私が取り組んでいるのは、thumbnailImageメソッドを取得して、データソースから返す適切なデータオブジェクトになり得るものを提供するために不足している手順です。

どんな助けでも驚くほどありがたいです。

ところで:IknowIknowIknow、MacRubyを使用する必要がありますが、32ビットCoreDuoでは動作しません。悲しいことに。

4

1 に答える 1

0

モデルをバイパスしました…</p>

そうしないでください。ココアでは、モデルがない場合よりもモデルがある場合の方が簡単です。

私が取り組んでいるのは、thumbnailImageメソッドを取得して、データソースから返す適切なデータオブジェクトになり得るものを提供するために不足している手順です。

CGImageSourceCreateThumbnailAtIndexCGImageを返します。tableView_objectValueForTableColumn_row_NSImageを返す必要があります。したがって、NSImageのinitWithCGImage_size_メソッドを使用してください。

Leopardを実行している場合、そのメソッドは使用できないため、代わりにCGImageを使用してNSBitmapImageRepを作成してから、正しいサイズのNSImageを作成し、その表現を追加する必要があります。

于 2009-10-05T22:11:36.057 に答える