我的 ViewController
包含子视图:
子UIView
位于 NameSubViewController
(带有XIB的课程)。
子视图包含 UITextField
。
我添加了这个动作:
- (IBAction)textFieldReturn:(id)sender;
在 NameSubViewController
类中,并将其连接到XIB中的文件所有者的文本字段(在退出时结束)。
但是当我点击返回时,log会给我一条错误信息,模拟器中没有任何反应。
这是相关代码:
ViewController.h:
@property (nonatomic, strong) UIView *nameSubView;
ViewController.m(viewDidLoad):
UIViewController *nameController = [[NameSubViewController alloc] initWithNibName:@"NameSubViewController" bundle:nil];
nameSubView = [nameController view];
[self.view addSubview:nameSubView];
NameSubViewController.h:
#import <UIKit/UIKit.h>
@interface NameSubViewController : UIViewController
@property (nonatomic, strong) IBOutlet UITextField *textField;
- (IBAction)textFieldReturn:(id)sender;
//Not working.. Connected from files owner to textField with option didEndOnExit
NameSubViewController.m:
-(IBAction)textFieldReturn:(id)sender
{
[sender resignFirstResponder];
}
当我点击返回时,我会在日志中收到此消息:
AppName[6656:f803] -[CALayer textFieldReturn:]: unrecognized selector sent to instance 0x6e99d40
2012-08-28 02:51:26.954 AppName[6656:f803] *** WebKit discarded an uncaught exception in the webView:shouldInsertText:replacingDOMRange:givenAction: delegate: <NSInvalidArgumentException> -[CALayer textFieldReturn:]: unrecognized selector sent to instance 0x6e99d40
键盘未被解雇。什么可能导致我的问题?
ViewController:
http://www.flickr.com/photos/80427098@N07/7877111708/in/photostream
NameSubViewController,显示在ViewController的子视图中的视图:
http://www.flickr.com/photos/80427098@N07/7877111596/in/photostream
答案 0 :(得分:1)
您是否打算让代表成为CALayer? [CALayer textFieldReturn:]
现在,它是。
答案 1 :(得分:0)
我终于找到了解决方案。这很简单,我只需要为NameSubViewController的UIView
创建一个类,并将textfieldReturn代码放在UIView类中:
#import <UIKit/UIKit.h>
@interface NameSubView : UIView
@property (nonatomic, strong) IBOutlet UITextField *textField;
- (IBAction)textFieldReturn:(id)sender;
@end
键盘正在返回!有道理,因为只有 UIView 作为主视图的子视图加载,没有子视图视图控制器。 ViewController永远不应该是另一个视图的子视图,只有它的视图应该是,所以代码必须写在子视图UIView类中。不是UIViewController类的子视图!