문제

나는 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

내가 손상하고있는 것은 누락 된 단계가 썸네일 메소드를 가져와 데이터 소스에서 반환하기에 적절한 데이터 객체가 될 수있는 것을 제공하는 것입니다.

모든 도움은 놀랍게도 감사합니다.

BTW : iknowiknowiknow, 나는 MacRuby를 사용해야하지만 32 비트 코어 듀오에서 실행되지는 않습니다. 슬프게도.

도움이 되었습니까?

해결책

나는 모델을 우회했다…

그렇게하지 마십시오. 코코아에서는 모델이없는 것보다 모델로 일을하는 것이 더 쉽습니다.

내가 손상하고있는 것은 누락 된 단계가 썸네일 메소드를 가져와 데이터 소스에서 반환하기에 적절한 데이터 객체가 될 수있는 것을 제공하는 것입니다.

CGImageSourceCreateThumbnailAtIndex cgimage를 반환합니다. 당신은 필요합니다 tableView_objectValueForTableColumn_row_ nsimage를 반환합니다. 따라서 nsimage를 사용하십시오 initWithCGImage_size_ 방법.

Leopard를 실행중인 경우 해당 방법을 사용할 수 없으므로 대신 CGIMAGE와 함께 NSBITMAPIMAGEREP를 생성 한 다음 올바른 크기의 NSimage를 생성하고 해당 표현을 추가해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top