如何从DVTSourceTextView确定文件URL

时间:2016-08-24 15:06:49

标签: plugins xcode7

我正在为Xcode 7编写一个插件。我有D​​VTSourceTextView并且可以很好地操作它。我想找到的一件事是哪个文件与此相关。不幸的是,DVTSourceTextView似乎没有提供这些信息 - 或者如果它提供了信息,它就会以我看不到的方式被埋没。

我确信这是微不足道的,我只是遗漏了一些东西。

1 个答案:

答案 0 :(得分:0)

好的,这比我想象的要容易。我从一种不同的(虽然几乎是正确的)方式接近它。

class func currentEditorView() -> (NSURL?, NSView?) {
    let currentWindowController = NSApp.keyWindow?.windowController
    guard currentWindowController!.className == "IDEWorkspaceWindowController" else { return (nil, nil) }

    let filename = currentWindowController!.valueForKey("editorArea")!.valueForKey("lastActiveEditorContext")!.valueForKey("originalRequestedDocumentURL")

    let editor = currentWindowController!.valueForKey("editorArea")!.valueForKey("lastActiveEditorContext")!.valueForKey("editor")!.valueForKey("textView")

    return (filename as? NSURL, editor as? NSView)
}

这给了我作为NSURL的文件名以及作为NSView的DVTSourceTextView,而不需要包含私有头。漂亮。

现在我不仅知道我正在编辑的文件的名称,而且我还可以确定它是swift,objc,c还是c ++文件!那很酷!