2013-05-30 83 views
4

我試圖創建和我的簡單的Cocoa應用程序,展示新窗口:可可加載失敗窗口筆尖文件時筆尖本地化

myWindow = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow" owner:self]; 
[myWindow showWindow:self]; 

它與基本的筆尖文件上工作良好,沒有本地化,但只要我打開定位爲這一特定筆尖文件(使用Xcode的「本地化」選項可用表單文件檢查器),應用程序執行的代碼時,上面給了我這個錯誤:

- [MyWindowController LOADWINDOW]:加載失敗窗口筆尖文件'AuthWindow'。

我應該改變使用本地化筆尖時初始化窗口控制器的方式嗎?只有當包含窗口的筆尖被本地化時(只有一種語言 - 英語),當沒有配置本地化時,它會失敗 - 窗口將被加載並出現在屏幕上。我找不到正確的答案,我是OSX的Cocoa新手,但在CocoaTouch和iOS開發方面有一些經驗。

+0

我想當你本地化一個文件Xcode創建一個新的文件夾,並將每個文件的特定語言放在其對應的文件夾。之後,您的文件路徑「MyWindow」不再有效,因爲它已被移動(或複製)到一個子目錄。不幸的是我正在度假,無法爲您提供答案。但也許這給你一個點開始調查;) – HAS

+0

@是的,我知道這件事。當涉及到筆尖路徑時,一切似乎都是正確的,en.lproj文件夾被創建並且本地化的筆尖移動到該文件夾​​。我可以在Xcode中打開並編輯筆尖而不會出現問題。儘管如此,當我調用initWithWindowNibName時,它應該爲當前(?)語言的本地化筆尖選擇適當的路徑。我找不到任何有關加載本地化筆尖的提示,所以我認爲這應該完全像非本地化筆尖一樣完成,但也許我錯了。 – Darrarski

回答

8

我重新啓動Xcode和錯誤走了......

我不知道...但無論...

+1

這實際上是一個100%有效的答案...該死的,Xcode。 – Mazyod

+0

清理項目(command + shift + k)並退出xcode(command + q)並重新啓動xcode。:D – Joey

6

initWithWindowNibName:可以定位在本地化筆尖文件目錄,如en.lproj/。問題是,有時Xcode忘記將文件(通常使用的XML格式的Interface Builder文件)編譯爲.nib文件或二進制格式 - 尤其是當.xib文件是隻需單擊「本地化...」按鈕進行本地化即可。

如果您打開$build_dir/Your.app/Contents/Resources/$locale.lproj,您會發現只從源目錄複製了一些xib。

重新啓動Xcode將解決這種情況,但我不確定原因是什麼以及重新啓動爲什麼會這樣做。

3

這是一個古老的問題,但我發現了一個不同於上述的解決方案。在有問題的筆尖中,轉到身份識別面板並確保檢查筆尖的目標成員資格。

enter image description here

+1

'Targets'>'Build Settings'> 'Copy Bundle Resources'並添加xib是另一種做同樣事情的方法。在將xib文件集成到之前在另一個項目中引用xib文件的項目中時,我遇到了這個問題。 –

0

我有這樣的錯誤。我解決這個問題的方法是製作xib文件的備份副本,將其從xcode中刪除,重新啓動xcode,然後將其添加回去。去圖...