[請益] 請教一下XIB對應的CLASS在哪邊設定呢

看板MacDev作者 (Bad_To_The_Bone)時間12年前 (2013/06/10 10:32), 編輯推噓1(1014)
留言15則, 3人參與, 最新討論串1/2 (看更多)
大家好 由於程式是別人寫的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

06/10 12:02, , 1F
Mac 不是從 class 讀入 nib, 是從 nib 讀入 class
06/10 12:02, 1F

06/10 12:02, , 2F
你要拉一個 object 到 nib 裡設定它的 class
06/10 12:02, 2F

06/10 14:17, , 3F
不太懂拉object到NIB的意思
06/10 14:17, 3F

06/10 14:18, , 4F
http://goo.gl/0Rc5X 這個網頁裡面的敘述是
06/10 14:18, 4F

06/10 14:19, , 5F
在xib文件中有一个最重要的就是File's Owner,这个对象
06/10 14:19, 5F

06/10 14:19, , 6F
指的就是Class属性中设定的那个类的对象。
06/10 14:19, 6F

06/10 14:19, , 7F
我檢查了一下我有多個xib的target裡面的File's Owner
06/10 14:19, 7F

06/10 14:20, , 8F
的確能夠透過File's Owner的custom class找到對應的Cla
06/10 14:20, 8F

06/10 14:22, , 9F
ss 也就是 我可以從這邊找到a.xib 跟 a.mm(h) 之間的
06/10 14:22, 9F

06/10 14:22, , 10F
關聯性
06/10 14:22, 10F
推太多不好寫 舉例來說 我有一個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)

06/10 14:26, , 11F
1.點選xib檔案 2.左側placeolder群組點選File's Owner
06/10 14:26, 11F

06/10 14:27, , 12F
3. 點選右側左數第三個頁籤custom class
06/10 14:27, 12F

06/10 14:27, , 13F
4. 第一個class是你要找的地方 下拉手key都可以
06/10 14:27, 13F

06/10 14:43, , 14F
感謝nobody1大大 我有找到這個 如果是NSApplication就
06/10 14:43, 14F

06/10 14:43, , 15F
不知道是怎麼看了
06/10 14:43, 15F
我這邊就用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)
文章代碼(AID): #1HjJh953 (MacDev)
文章代碼(AID): #1HjJh953 (MacDev)