在文本字段

时间:2016-06-22 10:04:35

标签: objective-c uitextfield uitextfielddelegate

我正在创建一个动态创建UITextField的视图控制器。

self.ansText = [[UITextField alloc] init];
                self.ansText.tag = 1;
                self.ansText.delegate = self;

                [_ansText createAnsTextwithParentFrame:QuestionView.frame withUpperFrame:questSeq2Frame];

                [QuestionView addSubview:_ansText];

这里当我对UITextField进行验证时,即使在其他视图控制器中文本字段也没有响应。这就是它到达UITextField ShouldBeginEditing方法。我在堆栈中经历了一些类似的问题溢出。我看到了一个解决方案,比如设置代表不要自我。但有人可以帮我解决这个问题。请你详细说明一下。非常感谢你提前。

2 个答案:

答案 0 :(得分:0)

@iOSManiac,代表可以是UITextField,它只是 self.ansText.delegate = ansText;

答案 1 :(得分:0)

这里有一个更详细的答案,你的And Text必须从UITextField继承而且必须实现UITextFieldDelegate

@interface ViewController ()

@end


@interface  AnsText : UITextField <UITextFieldDelegate>

@end

@implementation AnsText 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    NSLog(@"textFieldShouldBeginEditing");
    return YES;
}

@end



@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    AnsText *ansText = [[AnsText alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
    ansText.tag = 1;
    ansText.delegate = ansText;
    [self.view addSubview:ansText];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end