UIView子视图不响应代表

时间:2010-04-20 05:36:15

标签: iphone uiviewcontroller

我在viewDidLoad

中有以下代码
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,因此我可以平移和缩放。

谢谢!

1 个答案:

答案 0 :(得分:0)

我对你的问题的第一个问题是,“是否有理由使用UIViewController加载你的NIB文件?”。

看起来你正在“扔掉”UIViewController,只是因为它能够加载NIB文件。我先停止它,因为这可能会帮助您调试此问题。使用:

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

我要问的第二部分是你说“文件的所有者” - 因为你正在使用一个单独的UIViewController,你可能将它设置为回调你的UIViewController,而不是你要回调的代码。也许您可以告诉我们一些关于XIB文件设置的信息?