2

我在 iphone 应用程序中工作,其中有我想要的文本字段,当任何文本发生更改时,应该自动调用以下方法。

   -(void)textFieldTextDidChangeOneCI:(UITextField*)tf{



NSLog(@"Testing Successful Value %.2f",appDelegate.p_ClinInf_Yes_V_InModel);
appDelegate.p_ClinInf_Yes_NV_InModel  = [[textFieldOne text] floatValue];

appDelegate.p_ClinInf_No_NV_InModel=100-appDelegate.p_ClinInf_Yes_NV_InModel;

textFieldTwo.text=[NSString stringWithFormat:@"%.2f",appDelegate.p_ClinInf_No_NV_InModel];


NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];
NSString*string=textFieldOne.text;
if ([string rangeOfCharacterFromSet:set].location != NSNotFound) {
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"Only a number can be entered into this input field " delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];
    textFieldOne.text=@"";


}

NSLog(@"Testing Successful CI Data  %.2f",appDelegate.p_ClinInf_Yes_NV_InModel);

}

目前我正在调用这个

使用

    [textFieldOne addTarget:self action:@selector(textFieldTextDidChangeOneCI:) forControlEvents:UIControlEventEditingChanged];
4

4 回答 4

4

尝试这个

 - (void)viewDidLoad
{
[super viewDidLoad];

 [[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(textFieldTextDidChangeOneCI:)
 name:UITextFieldTextDidChangeNotification
 object:textfield];
 }

还要修改你的方法

 -(void)textFieldTextDidChangeOneCI:(NSNotification *)notification
 {
UITextField *textfield=[notification object];
NSLog(@"%@",textfield.text);

 }
于 2013-05-22T06:32:59.393 回答
0

您可以为 UITextFieldTextDidChangeNotification 添加观察者,只要文本字段中的文本更改,就会发布该观察者。

例如,请参见下面的代码:

// For textField1
[[NSNotificationCenter defaultCenter] 
addObserver:self 
   selector:@selector(anyMethod:)
       name:UITextFieldTextDidChangeNotification 
     object:textField1];

// For textField2
[[NSNotificationCenter defaultCenter] 
addObserver:self 
   selector:@selector(anyMethod:)
       name:UITextFieldTextDidChangeNotification 
     object:textField2];
于 2013-05-22T06:36:20.293 回答
0

你可以像下面那样做

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidChange:) name:UITextFieldTextDidChangeNotification object:nil];

让我知道它是否有效

于 2013-05-22T06:32:42.503 回答
0

尝试使用这个

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
   [self textFieldTextDidChangeOneCI:textField];
    return YES;
}
于 2013-05-22T06:32:25.637 回答