2016-08-24 1 views
0

Я пишу плагин для Xcode 7. У меня есть DVTSourceTextView и я могу просто манипулировать им. Одна из вещей, которую я хочу найти, - это файл, связанный с этим. К сожалению, DVTSourceTextView, похоже, не предлагает эту информацию - или, если это так, она похоронила таким образом, что я не вижу.Как определить URL-адрес файла из DVTSourceTextView

Я уверен, что это довольно тривиально, я просто что-то пропустил.

ответ

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, а также DVTSourceTextView как NSView без необходимости включения частных заголовков. Spiffy.

Теперь я не только знаю имя файла, который редактирую, но также могу определить, является ли он быстрым, objc, c или C++ файлом! Это круто!

+0

Конечно, с Xcode 8 все это стало спорным. –

 Смежные вопросы

  • Нет связанных вопросов^_^