2010-08-05 55 views
0

我試圖從awakeFromNib打電話performClick:,它不能正常工作。我認爲它是因爲它需要一個發件人,並且awakeFromNib沒有發件人。我嘗試使用nil,selfsender作爲performClick:的發件人,但似乎沒有任何效果。我的代碼是可可performClick:在awakeFromNib不能正常工作

- (void)awakeFromNib { 
[myButton performClick:sender]; 
} 

任何人都可以想到一個解決這個問題?感謝您的幫助

+0

你怎麼知道'performClick:'不工作?你是否已經將一個操作方法連接到該按鈕並驗證該方法未被調用?代碼運行時,控制檯日誌中是否有任何線索? – JWWalker 2010-08-05 22:51:57

+0

您需要使用'performClick:'而非自己發送消息的情況非常罕見。你想完成什麼?爲什麼? – Chuck 2010-08-05 22:53:04

+0

我想使用performClick:點擊一個按鈕來停止QCView,直到它稍後說明。我幾乎肯定不可能通過可可調用stop:在QCView上。 – nosedive25 2010-08-05 23:51:55

回答

1

您應該始終致電[super awakeFromNib],因爲您永遠不知道超級班正在做什麼。

awakeFromNib是一個壞地方performClick:因爲雖然一切都被加載和初始化,但不保證一切都已啓用,並可見。如果一個按鈕被禁用或隱藏,它將忽略performClick消息。

+0

好吧,我卡住了,因爲我需要調用stop:在qcview上,但是這隻能從ib完成? – nosedive25 2010-08-05 23:53:20

+0

happyCoding25:不,調用'stop:'不能只從IB完成,部分原因是IB不會調用你連接的動作方法。任何在文檔http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/QuartzFramework/Classes/QCView_Class/中列出的方法,您都可以致電。 – 2010-08-06 00:12:15

+0

謝謝我已經嘗試過使用stopRendering,但它繼續運行。 – nosedive25 2010-08-06 00:14:09

0

你可能還沒有連接你的qcview插座。您所說的一切都與發送消息nil一致,該消息不做任何處理並返回nil,Nil,NULL,NO, 00.0

+0

我已將我的QCView連接到正確的插座。 – nosedive25 2010-08-08 21:16:50

+0

然後,也許你還沒有加載你的筆尖。你可以通過在'qcview'中記錄指針來同時測試這兩種情況:'NSLog(@「qcview:%p」,qcview);' – 2010-08-09 00:23:44