当用户输入标签时,我正在尝试用文本字段填充标签:
·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'
这里有什么帮助吗? :)
答案 0 :(得分: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;
}
答案 1 :(得分:0)
我正在寻找一段时间来做这件事,这很简单:
你在@interface下的.h中的制作一个计时器
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];