我在viewDidLoad中有以下代码
myViewController = [[UIViewController alloc] initWithNibName:@"myView" bundle:nil] ;
self.myView = myViewController.view;
[self.view addSubview:myView];这段代码从myView.nib加载视图(当然,我有相应的视图控制器m和h文件)。myView视图有UITextField和其他控件。到目前为止一切顺利--我可以在屏幕上看到我所有的控件。
然而,问题是,即使我为UITextField设置了一个委托为文件的所有者(即myView),并且我在myView.m中实现了UITextFieldDelegate,委托方法也从未被触发过!
如果我将UITextField添加到原始视图(由XCode作为默认模板创建),则不会发生这种情况。为什么会发生这种情况?
我需要useSubview的原因是因为在实际代码中会将视图分层到UIScrollView中,这样我就可以平移和缩放。
谢谢!
发布于 2011-02-01 08:16:09
我对您的问题的第一个问题是,“有理由使用UIViewController加载您的NIB文件吗?”
看起来您是在“丢弃”UIViewController,只是为了利用它加载NIB文件的能力。我会先停止它,因为这可能会帮助您调试这个问题。使用:
self.myView = (UIView*)[NSBundle loadNibNamed:@"myView"];我要问的第二个问题是,您说的是“文件的所有者”--因为您使用的是一个单独的UIViewController,所以您可能会将它设置为回调到UIViewController,而不是您想要回调的代码。也许你可以告诉我们一些关于XIB文件的设置?
https://stackoverflow.com/questions/2672793
复制相似问题