我正在为Xcode 7编写一个插件。我有DVTSourceTextView并且可以很好地操作它。我想找到的一件事是哪个文件与此相关。不幸的是,DVTSourceTextView似乎没有提供这些信息 - 或者如果它提供了信息,它就会以我看不到的方式被埋没。
我确信这是微不足道的,我只是遗漏了一些东西。
答案 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 ++文件!那很酷!