如何? 對輸入框的常值內容進行限制的功能
如何? 對輸入框的常值內容進行限制的功能
1. 如何?對UITextField ,UITextView等輸入框的 字數限制
(1)首先,肯定要 讓controller 實現 UITextFieldDelegate (針對UITextField)或者 UITextViewDelegate(針對UITextView)
然後,將 輸入框的delegate屬性設定為self.
(2) 然後,我們就可以用這兩個delegate的函數來實現 我們對輸入字數的限制了。
對於 UITextField 是函數
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
或者
對於UITextView 是函數
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
如果允許繼續輸入,那麼返回YES,否則返回NO。
代碼如下:
view plain
//如果輸入超過規定的字數100,就不再讓輸入
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (range.location>=100)
{
return NO;
}
else
{
return YES;
}
}
2. 如何? 對有輸入限制的輸入框的剩餘字數的自動計算
比如上面的代碼中,輸入框的字數不能超過100,如何即時的計算出當前可以輸入多少個字元呢?
UITextField 沒有找到合適的函數,也可以在函數
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
中來實現。
代碼:
view plain
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
int remainTextNum_=100;
//計算剩下多少文字可以輸入
if(range.location>=100)
{
remainTextNum_=0;
return NO;
}
else
{
NSString * nsTextContent=string.text;
int existTextNum=[nsTextContent length];
remainTextNum_=100-existTextNum;
return YES;
}
}
UITextView 除了可以在函數
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
中按照上面類似的辦法處理以外,還可以在函數
- (void)textViewDidChange:(UITextView *)textView 中處理。
代碼如下:
view plain
//在這個地方計算輸入的字數
- (void)textViewDidChange:(UITextView *)textView
{
NSString * nsTextContent=textView.text;
int existTextNum=[nsTextContent length];
remainTextNum_=100-existTextNum;
}