UITextField實時監聽輸入文本的變化


開始用如下代理方法發現只能監聽到變化后的前一位

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

   //變化后的字符串
   NSLog(@"%@",textField.text);
    
    return YES;
}

然后在代理方法里面用如下方法可獲取到變化后的完整內容

NSString * new_text_str = [textField.text stringByReplacingCharactersInRange:range withString:string];

但是發現只有文本內容增加時可以監聽到,當點擊鍵盤上刪除按鈕文本內容減少時是監聽不到的,最后用下面通知的方法可以完美解決

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFieldTextDidChangeOneCI:)
     name:UITextFieldTextDidChangeNotification
     object:_textField2];
    
}


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

 發現有更簡單的方法如下

//添加方法
 [textField addTarget:self action:@selector(textFieldChanged:) forControlEvents:UIControlEventEditingChanged];

- (void)textFieldChanged:(UITextField*)textField{

    NSString *_string = textField.text;
    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM