看板 MacDev 關於我們 聯絡資訊
大家好 由於程式是別人寫的code 正在學習 xcode版本是 4.6 想請教一下 如果我的project 只有一個NSApplication 的target 我目前看到target的設定是 Summary->Main Interface-> "mainMenu" Info->Custom OS X Application target properties-> principle class-> "NSApplication" Main nib file base name-> "mainMenu" 我目前有找到mainMenu.xib 找了這個xib的所有設定選項 現在不是太懂究竟這個nib跟哪個class關聯著 我自己是有搜尋code裡面awakeFromNib的部分是有找到 與此xib關聯的class 目前自己"推測" target會從Main nib file base name指定的xib開始跑 xib編譯後會變成nib 跑了以後會去跑awakeFromNib的function 不知道這邊有沒有錯誤 (不好意思對於mac程式沒有太多經驗) 現在比較大的疑惑是 如果有多個xib 怎麼把每個xib跟每個awakeFromNib對應在一起 該去哪邊看呢 感謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.72.248.50
uranusjr:Mac 不是從 class 讀入 nib, 是從 nib 讀入 class 06/10 12:02
uranusjr:你要拉一個 object 到 nib 裡設定它的 class 06/10 12:02
donkeychen:不太懂拉object到NIB的意思 06/10 14:17
donkeychen:http://goo.gl/0Rc5X 這個網頁裡面的敘述是 06/10 14:18
donkeychen:在xib文件中有一个最重要的就是File's Owner,这个对象 06/10 14:19
donkeychen:指的就是Class属性中设定的那个类的对象。 06/10 14:19
donkeychen:我檢查了一下我有多個xib的target裡面的File's Owner 06/10 14:19
donkeychen:的確能夠透過File's Owner的custom class找到對應的Cla 06/10 14:20
donkeychen:ss 也就是 我可以從這邊找到a.xib 跟 a.mm(h) 之間的 06/10 14:22
donkeychen:關聯性 06/10 14:22
推太多不好寫 舉例來說 我有一個target 裡面有兩個xib Add.xib Del.xib 點選Add.xib 在Placeholders-> File's Owner http://ppt.cc/jPXK 右邊點選第三個 (我不知道這叫什麼 圖裡面上面有一排可點的) http://ppt.cc/Tze- 在Custom Class裡面 我可能找到這個Class 是 MYAdd這個class 接著去code裡面搜尋 可能有找到一個 MyAdd.h 有 @interface MYAdd 與 MyAdd.mm 有 @implementation MYAdd 也有 awakeFromNib 所以這樣我可以把Add.xib <-> MyAdd.h MyAdd.mm 關聯在一起 同樣的可能有Del.xib <-> MyDel.h MyDel.mm 而不是用檔名在那邊猜測 到這邊我可能幫自己解決了一半的問題 但是我自己實作一個新的Cocal Application MainMenu.xib是程式自己產生出來的 其對應的Class卻是"NSApplication" 究竟會對應到哪個.h 與.mm我就無從得知了 如果我New一個User Interface 就會多一個xib 而這個新New出來的xib Files's Owner的class也是"NSApplication" 我剩下一半的問題就在於 如果一個target只有一個xib的情況下 從File's Owner裡面找到的是NSApplication 這邊要怎麼找到其對應的.h .mm檔呢 感謝 ※ 編輯: donkeychen 來自: 211.72.248.50 (06/10 14:40)
nobody1:1.點選xib檔案 2.左側placeolder群組點選File's Owner 06/10 14:26
nobody1:3. 點選右側左數第三個頁籤custom class 06/10 14:27
nobody1:4. 第一個class是你要找的地方 下拉手key都可以 06/10 14:27
donkeychen:感謝nobody1大大 我有找到這個 如果是NSApplication就 06/10 14:43
donkeychen:不知道是怎麼看了 06/10 14:43
我這邊就用xcode new 一個cocal application 然後new 一個user interface 如下圖 http://ppt.cc/Hf4e 有一開始產生的MainMenu.xib 與後來加入的Add.xib 點選MainMenu.xib的Placeholders -> File's Owner http://ppt.cc/ckhi 可以看到右方的custom class 裡面的class顯示為NSApplication 點選新增的MainMenu.xib的Placeholders->File's Owner http://ppt.cc/HC2x 可以看到右方的custom class 裡面的class顯示為NSApplication 我找不到這兩個的差別 下午翻來翻去了以後發現 原始產生的MainMenu.xib 下方的Object有一個App delegate http://ppt.cc/ohLm 藍色的cube(不太知道這是啥) 點選後 右方的custom class裡面的class為Appdelegate 這個是跟我新加的xib不一樣的地方 (add.xib只有font manager) 對這個Object欄位裡面出現的東西還沒有太有概念 ※ 編輯: donkeychen 來自: 211.72.248.50 (06/10 17:28)