1

我正在使用 iOS 5 并尝试将 TextField 与 UITextFieldDelegate 一起使用,它的工作方式与我想要的完全一样(但只是在第一个视图中)。我不明白,为什么它在下一个视图中不起作用。

举个简单的例子,我创建了新项目(ViewController)。在那里我添加了一个按钮,它连接到另一个视图(SecondViewController)。在 SecondViewController 中,我有一个 TextField。有了这个 textField,我想使用 textFieldShouldReturn。但似乎没有调用此方法。据我所知,我应该在 ViewDidLoad 中编写委托。我应该写 myTextField.delegate = self; ? 但我认为那里有问题。我使用了调试,并且总是在那个位置,我遇到了问题。你能告诉我,问题是什么吗?以及我该如何解决它;(

提前致谢.....

这是我的代码(它在第一个视图(ViewController)中有效。不幸的是这里不是(SecondViewController):


SecondViewController.h

@interface SecondViewController : UIViewController<UITextFieldDelegate>

@property (strong, nonatomic) IBOutlet UITextField *myTextField;

@end

第二视图控制器.m

@implementation SecondViewController

@synthesize myTextField;


- (void)viewDidLoad{

    [super viewDidLoad];

    myTextField.delegate = self; // here i get the problem
}

-(BOOL) textFieldShouldReturn:(UITextField *)textField{   // this method is not being called


    [textField resignFirstResponder];
    NSLog(@"is called!");
    NSString *valueMyTextField = myTextField.text;
    NSLog(@"%@", valueMyTextField);

    return YES;
}
4

2 回答 2

2

问题已解决... :) 问题是从firstView到的连接secondView。不要使用addSubView,如果你想添加控制器!使用presentModalViewController:) 希望它有所帮助,以防你和我一样有同样的问题。

于 2011-11-22T12:30:35.830 回答
0

在 nib 文件中,请检查您是否选中了文本字段的Auto-enable Return Key复选框。

于 2011-11-21T10:21:55.957 回答