2010-04-20 41 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文件的设置?