作者donkeychen (Bad_To_The_Bone)
看板MacDev
標題[請益] 請教一下XIB對應的CLASS在哪邊設定呢
時間Mon Jun 10 10:32:39 2013
大家好
由於程式是別人寫的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
1F:→ uranusjr:Mac 不是從 class 讀入 nib, 是從 nib 讀入 class 06/10 12:02
2F:→ uranusjr:你要拉一個 object 到 nib 裡設定它的 class 06/10 12:02
3F:→ donkeychen:不太懂拉object到NIB的意思 06/10 14:17
5F:→ donkeychen:在xib文件中有一个最重要的就是File's Owner,这个对象 06/10 14:19
6F:→ donkeychen:指的就是Class属性中设定的那个类的对象。 06/10 14:19
7F:→ donkeychen:我檢查了一下我有多個xib的target裡面的File's Owner 06/10 14:19
8F:→ donkeychen:的確能夠透過File's Owner的custom class找到對應的Cla 06/10 14:20
9F:→ donkeychen:ss 也就是 我可以從這邊找到a.xib 跟 a.mm(h) 之間的 06/10 14:22
10F:→ 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)
11F:推 nobody1:1.點選xib檔案 2.左側placeolder群組點選File's Owner 06/10 14:26
12F:→ nobody1:3. 點選右側左數第三個頁籤custom class 06/10 14:27
13F:→ nobody1:4. 第一個class是你要找的地方 下拉手key都可以 06/10 14:27
14F:→ donkeychen:感謝nobody1大大 我有找到這個 如果是NSApplication就 06/10 14:43
15F:→ 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)