2010-04-20 55 views
1

我在viewDidLoad中有以下代碼UIView子視圖不響應代表

myViewController = [[UIViewController alloc] initWithNibName:@"myView" bundle:nil] ; 
self.myView = myViewController.view; 
[self.view addSubview:myView]; 

此代碼從myView.nib加載視圖(我當然有相應的視圖控制器m和h文件)。 myView視圖有UITextField和其他控件。到目前爲止一切都那麼好 - 我可以在屏幕上看到我的所有控件。

然而問題是,即使我將UITextField的委託設置爲File的所有者(這是myView)並且我在myView.m中實現了UITextFieldDelegate,委託方法也永遠不會被觸發!

如果我將UITextField添加到原始視圖(由XCode創建爲默認模板),則不會發生這種情況。爲什麼會這樣?

我需要使用子視圖的原因是因爲在實際代碼中將圖層視圖到UIScrollView所以我可以平移和縮放。

謝謝!

+0

你解決了嗎? – marko 2010-12-10 10:47:59

回答

0

我對你的問題的第一個問題是,「是否有理由使用UIViewController來加載你的NIB文件?」。

它似乎是「扔掉」UIViewController並僅僅使用它來加載NIB文件。我會先停下來,因爲這可能會幫助您調試此問題。用途:

self.myView = (UIView*)[NSBundle loadNibNamed:@"myView"]; 

我倒是問題的第二部分是,你說的「文件的所有者」 - 因爲您使用的是單獨的UIViewController,你可以把它設置爲回打電話給你的UIViewController,而不是代碼你的意思是回撥到。也許你可以告訴我們一些關於XIB文件的設置?