我需要将UITextField数据传递给UILabel,同时将文本输入到文本字段中。
例如:如果我输入“10美元”。在文本字段中,它应该立即显示在UILabel上而不按任何按钮。
基本上我希望价格为“10.55美元”,但你知道我的意思。
@property (weak, nonatomic) IBOutlet UITextField *PriceTextField;
@property (nonatomic, strong) NSString *PriceString;
@property (strong, nonatomic) IBOutlet UILabel *PriceLabel;
答案 0 :(得分:1)
您可以通过实施shouldChangeCharactersInRange
委托来实现这一目标。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
@try{
self.PriceLabel.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
}
@catch (NSException *exception){
NSLog(@"%s\n exception: Name- %@ Reason->%@", __PRETTY_FUNCTION__,[exception name],[exception reason]);
}
@finally{
return YES;
}
}
答案 1 :(得分:1)
编辑:看看@ rmaddy对此的评论,因为这是最好,最干净的方式。
不幸的是,UITextFieldDelegate
每次文本字段更改时都没有通知您,但您可以使用name:UITextFieldTextDidChangeNotification
:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateLabelFromTextField:)
name:UITextFieldTextDidChangeNotification
object:nil];
把它放在你viewDidLoad
或任何有意义的地方。
然后简单地说:
- (void)updateLabelFromTextField:(NSNotification *)notification{
If (notification.object == self.PriceTextField){
UITextField *textField = (UITextField *) notification.object;
self.PriceLabel.text = textField.text;
}
}
答案 2 :(得分:-1)
实现此UITextField委托方法并更新其中的标签
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
self.label.text = [textField.text stringByAppendingString:string];
return YES;
}