1

我正在尝试在用户输入时由文本字段填充标签:

。H

@interface MainView : UIViewController <UITextFieldDelegate>

还有.m:

-(void)textViewDidChange:(UITextView *)textView
    {
        label.text = textField.text;
    }
- (void)viewDidLoad
    {
        [super viewDidLoad];
        [textField addTarget:self action:@selector(textViewDidChange:) forControlEvents:UIControlEventEditingChanged];
    }

我已经与label标签和textField情节提要中的文本字段链接。

但是加载 ViewController 时应用程序崩溃:

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UILabel addTarget:action:forControlEvents:]: 无法识别的选择器发送到实例 0x7584ff0”

这里有什么帮助吗?:)

4

2 回答 2

3

您已经在实施UITextFieldDelegate,因此您可以像这样覆盖shouldChangeCharactersInRange

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
     // make sure it is the correct UITextField
     if ([textField isEqual:self.textField]) {
          // update UILabel
          self.label.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
     }
     return YES;
}
于 2013-01-31T01:07:23.297 回答
0

我一直在寻找如何做到这一点,这很简单:

在你下面的 .h @interface 做一个计时器

 NSTimer *UpdateLabel;

然后在你的 .m 中做

-(void)UpdateLabel{
Label.text = Textfield.text;
Label.teaxtColor = [UIColor whiteColor];
UIFont *labelfont=[UIFont fontWithName:@"your Font" size:19];
[Label setFont:labelfont];
}

然后在你的 viewdidload 中做

UpdateLabel = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(UpdateLabel) userInfo:nil repeats:YES];
于 2014-02-12T01:31:43.773 回答