我的Mac應用程序旨在編輯和分析圖形,用戶可以在文件系統的任何位置創建和存儲文件。我去用戶讓他們打開一個以前創建的文件與[NSOpenPanel openPanel]
和一個內聯完成處理程序塊。在菜單處理我得到這個控制檯錯誤信息幾次:「在[NSOpenPanel openPanel]調用上無法更新[sic]書籤項目」
2017-02-25 13:42:47.394433 pasteurnet3[32901:1263849] [default] Failed to updated bookmark for item (null) [60AF512E-6072-427D-8624-C406B0EF7D5A] - URL:file:///AirDrop with error Error Domain=NSCocoaErrorDomain Code=260 "The file couldn’t be opened because it doesn’t exist."
這只是發生在創建NSOpenPanel
的,甚至將其發送的beginWithCompletionHandler:
消息之前。 FWIW,儘管如此,菜單仍然會在最終請求時出現,允許選擇文件,並且似乎可以正常工作。菜單對象的初始化似乎有很長的延遲。
我很長時間沒有注意到這個應用程序,但消息的外觀顯然歸功於MacOS的改變。我立即懷疑沙箱,但沙箱已關閉的應用程序。如果我打開沙箱並請求「用戶選擇的文件」權利,它似乎沒有任何區別。
沒有什麼特別之處創建對象除了它是一個@try
塊內完成:
@try {
// Create the File Open Dialog class.
openDialog_ = [NSOpenPanel openPanel]; // error occurs here
}
@catch (NSException *e){
NSLog(@"innocuous exception(1) in -initForOpenWithDefaultFile:callBackTo:");
}
@catch (NSString *s){
NSLog(@"innocuous exception(2) in -initForOpenWithDefaultFile:callBackTo: \"%@\"", s);
}
@catch (...) {
NSLog(@"innocuous exception(3) in -initForOpenWithDefaultFile:callBackTo: probably a layout error");
}
@finally {
;
}
我沒有做使用書籤事情從程序中也沒有,對於這個問題,有空投。
Xcode 8.2.1,Macbook MacOS 10.12.3。
我在使用Qt的應用程序中看到了這一點,當我升級到Sierra和Qt 5.8時。我曾以爲這是一個Qt問題,但顯然不是。我並沒有聲稱這是一個解決方案,但由於它似乎在尋找名爲AirDrop的頂級目錄,我嘗試了創建一個。這至少擺脫了警告,並嘗試這可能是一個有用的實驗。我一直無法找到爲什麼文件打開對話框可能要查看/ AirDrop的任何解釋,所以我真正在這裏做的是分享一些經驗。 – KeithS