Хорошо, это было легче, чем я думал. Я приближался к нему из другого (хотя и почти правильного) способа.
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, а также DVTSourceTextView как NSView без необходимости включения частных заголовков. Spiffy.
Теперь я не только знаю имя файла, который редактирую, но также могу определить, является ли он быстрым, objc, c или C++ файлом! Это круто!
Конечно, с Xcode 8 все это стало спорным. –