我想知道如何通过首先通过NSOpenPanel获取文件来填充NSTableView。它类似于在运行时从我的文件夹中选择后列出/显示文件。
编辑:所以我有这种工作(通过绑定)....但是除非我点击表格顶部,否则我无法显示它。如果您打开以获取更多文件,则显示屏将不会再次更新。我觉得这可能是因为controllerArray的Received Action add:没有链接。 下面的代码就是我现在所拥有的
@IBAction func openPanel(sender: NSButton) {
let openPanel = NSOpenPanel()
openPanel.allowedFileTypes = ["pdf"]
openPanel.canChooseFiles = true
openPanel.allowsMultipleSelection = false
openPanel.canChooseDirectories = true
openPanel.beginWithCompletionHandler { (result) -> Void in
if result == NSFileHandlingPanelOKButton {
var url:NSURL = openPanel.URL!
var pdfFile: PDFModel = PDFModel()
pdfFile.initWithURL(url)
self.insertFileLibrary(pdfFile, inFileListAtIndex: self.fileLibrary.count)
}
}
}
func insertFileLibrary(pdfModel:PDFModel, inFileListAtIndex index:Int){
fileLibrary.insertObject(pdfModel, atIndex: index)
}
func removeObjectFromFileLibraryAtIndex(index:Int){
fileLibrary.removeObjectAtIndex(index)
}
答案 0 :(得分:0)
绑定使用KVO,你必须以一个由willChange ...和didChange包围的KVO方式变换fileLibrary。让NSArrayContoller这样做更容易。您可以使用NSArrayController的addObject(s),insertObject(s)和removeObject(s)方法。