我在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
,因此我可以平移和缩放。
谢谢!
答案 0 :(得分:0)
我对你的问题的第一个问题是,“是否有理由使用UIViewController加载你的NIB文件?”。
看起来你正在“扔掉”UIViewController,只是因为它能够加载NIB文件。我先停止它,因为这可能会帮助您调试此问题。使用:
self.myView = (UIView*)[NSBundle loadNibNamed:@"myView"];
我要问的第二部分是你说“文件的所有者” - 因为你正在使用一个单独的UIViewController,你可能将它设置为回调你的UIViewController,而不是你要回调的代码。也许您可以告诉我们一些关于XIB文件设置的信息?