是否可以检查任何应用程序是否打开了文件或包?例如,假设我知道/Users/Foo/AwesomeDocument.txt
存在并且在TextEdit
中打开,我可以从我的应用程序中可靠地检查文档是否已打开?
我可以使用仅适用于通过NSDocumentController
打开的文档的解决方案。
答案 0 :(得分:1)
您可以使用NSTask运行shell命令lsof | grep "Document.txt"
,然后解析结果,尽管该方法有点慢。我不知道有一种原生的Cocoa方法可以达到这个目的。
答案 1 :(得分:0)
你的意思是这样吗?
例如,在Applescript中:
tell application "TextEdit"
set theDocument to document of window 1
return theDocument
end tell
答案 2 :(得分:0)
tell application "TextEdit"
set theDocuments to every document
repeat with aDocument in theDocuments
if (path of aDocument) as string is equal to "/test.txt" then
display dialog "found"
end if
end repeat
end tell
答案 3 :(得分:0)
从10.7开始,您可能想尝试使用NSFileCoordinator
。请记住,并非每个应用程序都必须NSFilePresenter
已实施,并与NSDocument
一起使用。