2014-09-30 35 views
-3
設置最大限值

NOTE: Not to set the Charecter limit, asking for Value of the field limit目標C如何在的UITextField

在我的應用程序有一個uitext字段中輸入一個項目的成本。

我可以能夠限制的文本字段中輸入數值,即得我需要restctrict文本字段,只允許成本僅爲的一些範圍charecters某個特定數量,

即我需要限制成本僅爲800/- 只

如果用戶嘗試輸入900或一些東西超過800它不會允許再鍵入

我們如何才能實現TIS任何幫助普萊舍..感謝

+0

你試過了什麼? – 2014-09-30 08:56:52

+0

Plz使用搜索..已被問了很多次 – 2014-09-30 08:57:19

+0

如果你願意,你可以查看我的CKTextField(https://github.com/JaNd3r/CKTextField)。它允許您通過Storyboard設置簡單的驗證規則(如最大字符串長度,最大數值)。 – Christian 2014-09-30 09:06:11

回答

-1

試試這個

處理「編輯更改」事件的

[textField addTarget:self 
       action:@selector(editingChanged:) 
    forControlEvents:UIControlEventEditingChanged]; 

和選擇:

-(void) editingChanged:(id)sender { 
     // your code 

} 
+0

通過這種方式,您只能在發生編輯後才能做**。他想阻止用戶輸入無效值。 – DeFrenZ 2014-09-30 09:25:57

0
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
    if([string isEqualToString:@""]) { 
     return YES; 
    } 
    NSString *stringToValidate= [textField.text stringByReplacingCharactersInRange:range withString:string]]; 
     if([stringToValidate doubleValue]>800){ 
return NO; 
} 
return YES; 
} 

檢查上面的代碼,它可以幫助你

+0

這不是生成'stringToValidate'的正確方法 – DeFrenZ 2014-09-30 09:19:31

+0

爲什麼這是不正確的方法,你可以expalin @ Davide – 2014-09-30 09:22:47

+0

在你的實現中,不可能在與末尾不同的位置編輯字符串。我寫了正確的代碼:) – DeFrenZ 2014-09-30 09:25:04

1
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (textField == myTextField) { 
     if (string.length == 0) { 
      return YES; 
     } 
     NSString *editedString = [myTextField.text stringByReplacingCharactersInRange:range withString:string]; 
     NSInteger editedStringValue = editedString.integerValue; 
     return editedStringValue <= 800; 
    } 

    return YES; 
} 
0

先設置你的文本字段的委託......

yourTextField.delegate=self 

然後,

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
     NSString *str=[NSString stringWithFormat:@"%@%@",textField.text,string]; 
     if ([str integerValue]>800) { 
      return NO; 
     } 
     else{ 
      return YES; 
     } 
    } 

,如果你有一個以上的文本框,那麼你需要指定標籤值,並把另一個條件,以確定文本框,如果你只有一個文本字段中相同的代碼。