作者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)