ios – Swift中如何應用ChangeCharactersInRange?
我正在使用shouldChangeCharactersInRange作為使用即時型別搜尋的一種方式.
但是我有一個問題,應該在文字欄位實際更新之前呼叫shouldChangeCharactersInRange:
在目標C中,我使用下面的方法解決了這個問題:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString * searchStr = [textField.text stringByReplacingCharactersInRange:range withString:string]; return YES; }
不過,我試過在Swift寫這篇文章:
func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool { let txtAfterUpdate:NSString = self.projectSearchTxtFld.text as NSString txtAfterUpdate.stringByReplacingCharactersInRange(range, withString: string) self.callMyMethod(txtAfterUpdate) return true }
在獲取值之前,該方法仍然被呼叫?
func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool { var txtAfterUpdate:NSString = self.projectSearchTxtFld.text as NSString txtAfterUpdate = txtAfterUpdate.stringByReplacingCharactersInRange(range, withString: string) self.callMyMethod(txtAfterUpdate) return true }
http://stackoverflow.com/questions/25621496/how-shouldchangecharactersinrange-works-in-swift