我正在尝试显示一个 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 位 Core Duo 上运行。可悲的是。