Re: [問題] NSWindow 有OnLoad Event嗎

看板MacDev作者 (←這人是超級笨蛋)時間16年前 (2009/08/28 10:19), 編輯推噓4(405)
留言9則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《jlovet (打不贏怪兵器不好)》之銘言:

08/28 01:12,
Cocoa程式起來時,會有好幾個點可以做一些附加操作.
08/28 01:12

08/28 01:13,
如果是跟GUI有關的,你可以試著在awakeFormNib裡去處理
08/28 01:13

08/28 01:14,
在呼叫到awakeFromNib時,你在IB內建構的元件都已被實體化,
08/28 01:14

08/28 01:14,
意即從這時候起你就可以存取UI物件而不用擔心是否存在
08/28 01:14

08/28 01:16,
細節的部分,可以參考別人的程式碼.看怎麼取得已生成的UI,
08/28 01:16

08/28 01:16,
以及如何建立,連結UI之間的動作.
08/28 01:16

08/28 01:38,
不太懂,awakeFromNib是一個action還是...?我找不到
08/28 01:38

08/28 01:38,
我想要依照檔案裡面定義的數量形式建立元件
08/28 01:38

08/28 02:49,
成功了,awakeFromNib不能從什麼元件送出來,自己加就可以
08/28 02:49

08/28 03:54,
其實awakeFromNib是要給系統呼叫的 :p
08/28 03:54
- (void)awakeFromNib 就是一個 method 沒錯 但它不是讓你主動呼叫的東西(Cocoa 裡面很多東西很被動, 這是其中之一) 和 delegate methods 的運作方式其實差不多(please correct me if I'm wrong) 當一個 Nib file 被開啟時, 它會把所有該 initialize 的東西初始化 接著再把 Interface Builder 裡的那些線拉好 因為這樣, 所以想在視窗一出現時就對 GUI 做設定 就不能在 NSWindow 物件的 -init 裡下指令 因為那時候 NSWindow 還不知道誰是它的 outlets, 不懂怎麼做 不過 Interface Builder 裡面的線被拉完後 Nib 裡的 loader 會送 -awakeFromNib 給所有它裡面的物件 所以如果把 GUI 相關的指令放在這裡, 就可以確定它們能被執行 所以你不會呼叫一個 object 的 awakeFromNib(although you probably can...XD) 而是會建立你的元件中的 awakeFromNib, 以讓應用程式在該呼叫它時自己呼叫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.71.62.165

08/28 11:28, , 1F
嗯,感覺delegate跟action跟windows的event差很多...
08/28 11:28, 1F

08/28 11:29, , 2F
windows是指定event會作什麼事,但是cocoa是指定一個
08/28 11:29, 2F

08/28 11:29, , 3F
delegate然後自動接收這些"全域"事件,對吧?
08/28 11:29, 3F

08/28 12:49, , 4F
前陣子有一串在討論 delegate 的, zonble 跟 offman 都解
08/28 12:49, 4F

08/28 12:49, , 5F
釋得很好
08/28 12:49, 5F

08/28 13:09, , 6F
是offname(關名字)不是offman(關男人)喔 :D
08/28 13:09, 6F

08/28 15:02, , 7F
08/28 15:02, 7F

09/01 18:28, , 8F
09/01 18:28, 8F

09/02 02:37, , 9F
XD
09/02 02:37, 9F
文章代碼(AID): #1Abpwwdu (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1Abpwwdu (MacDev)