Răsfoiți Sursa

170206

ver 1.22 release
Ray Zhang 9 ani în urmă
părinte
comite
db1338aa13

BIN
Ants Contract/AntsContract.xcworkspace/xcuserdata/Ray.xcuserdatad/UserInterfaceState.xcuserstate


+ 25 - 263
Ants Contract/AntsContract.xcworkspace/xcuserdata/Ray.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -10,44 +10,28 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "common/PageViewController.m"
-            timestampString = "507871716.928267"
+            timestampString = "508061004.568315"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1247"
-            endingLineNumber = "1247"
-            landmarkName = "-keyboardWillShow:"
+            startingLineNumber = "737"
+            endingLineNumber = "737"
+            landmarkName = "-CheckButtonClicked:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PageViewController.m"
-            timestampString = "507871716.928267"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1298"
-            endingLineNumber = "1298"
-            landmarkName = "-keyboardWillHide:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
+            shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "common/PageViewController.m"
-            timestampString = "507871716.928267"
+            timestampString = "508061004.568315"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1297"
-            endingLineNumber = "1297"
-            landmarkName = "-keyboardWillHide:"
+            startingLineNumber = "730"
+            endingLineNumber = "730"
+            landmarkName = "-CheckButtonClicked:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -58,29 +42,15 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "common/PageViewController.m"
-            timestampString = "507871716.928267"
+            timestampString = "508065299.082579"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1248"
-            endingLineNumber = "1248"
-            landmarkName = "-keyboardWillShow:"
+            startingLineNumber = "1074"
+            endingLineNumber = "1074"
+            landmarkName = "-textViewDidEndEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "Granite Expo eSign/Granite Expo eSign/config.h"
-            timestampString = "506478579.976757"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2"
-            endingLineNumber = "2">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -88,92 +58,12 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "common/PageViewController.m"
-            timestampString = "507871716.928267"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "779"
-            endingLineNumber = "779"
-            landmarkName = "-textView:shouldChangeTextInRange:replacementText:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/DocumentPageViewController.m"
-            timestampString = "506584879.32929"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "369"
-            endingLineNumber = "369"
-            landmarkName = "-EndEditing"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/DocumentPageViewController.m"
-            timestampString = "506584879.32929"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "906"
-            endingLineNumber = "906"
-            landmarkName = "-pageViewController:viewControllerBeforeViewController:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/DocumentPageViewController.m"
-            timestampString = "506584879.32929"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "919"
-            endingLineNumber = "919"
-            landmarkName = "-pageViewController:viewControllerAfterViewController:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/DocumentPageViewController.m"
-            timestampString = "506584879.32929"
+            timestampString = "508065299.082579"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "368"
-            endingLineNumber = "368"
-            landmarkName = "-EndEditing"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507803646.230241"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "64"
-            endingLineNumber = "64"
-            landmarkName = "-MyDisplayPDFPage:index:"
+            startingLineNumber = "995"
+            endingLineNumber = "995"
+            landmarkName = "-textViewDidBeginEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -184,140 +74,12 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "common/PageViewController.m"
-            timestampString = "507871716.928267"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "144"
-            endingLineNumber = "144"
-            landmarkName = "-initControl"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507785743.177363"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "40"
-            endingLineNumber = "40"
-            landmarkName = "-MyDisplayPDFPage:index:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507803646.230241"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "60"
-            endingLineNumber = "60"
-            landmarkName = "-MyDisplayPDFPage:index:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507803646.230241"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "62"
-            endingLineNumber = "62"
-            landmarkName = "-MyDisplayPDFPage:index:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507803646.230241"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "67"
-            endingLineNumber = "67"
-            landmarkName = "-MyDisplayPDFPage:index:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507803646.230241"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "47"
-            endingLineNumber = "47"
-            landmarkName = "-MyDisplayPDFPage:index:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507798704.873893"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "41"
-            endingLineNumber = "41"
-            landmarkName = "-MyDisplayPDFPage:index:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507798705.785721"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "39"
-            endingLineNumber = "39"
-            landmarkName = "-MyDisplayPDFPage:index:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "common/PDFPageView.m"
-            timestampString = "507803646.230241"
+            timestampString = "508065299.082579"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "43"
-            endingLineNumber = "43"
-            landmarkName = "-MyDisplayPDFPage:index:"
+            startingLineNumber = "989"
+            endingLineNumber = "989"
+            landmarkName = "-textViewDidBeginEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -328,12 +90,12 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "common/PageViewController.m"
-            timestampString = "507871706.661522"
+            timestampString = "508065299.082579"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "138"
-            endingLineNumber = "138"
-            landmarkName = "-scaleControl:from:to:"
+            startingLineNumber = "1001"
+            endingLineNumber = "1001"
+            landmarkName = "-textViewDidBeginEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>

+ 25 - 10
Ants Contract/AntsContract.xcworkspace/xcuserdata/Ray.xcuserdatad/xcdebugger/Expressions.xcexplist

@@ -5,6 +5,14 @@
       <ContextState
          contextName = "-[PageViewController viewDidLoad]:PageViewController.m">
       </ContextState>
+      <ContextState
+         contextName = "-[PageViewController textViewDidChangeSelection:]:PageViewController.m">
+         <PersistentStrings>
+            <PersistentString
+               value = "textView.text">
+            </PersistentString>
+         </PersistentStrings>
+      </ContextState>
       <ContextState
          contextName = "-[DocumentPageViewController createDemoView:]:DocumentPageViewController.m">
          <PersistentStrings>
@@ -59,6 +67,14 @@
       </ContextState>
       <ContextState
          contextName = "__41-[PageViewController CheckButtonClicked:]_block_invoke:PageViewController.m">
+         <PersistentStrings>
+            <PersistentString
+               value = "self.controlTemplate">
+            </PersistentString>
+            <PersistentString
+               value = "[NSNumber numberWithBool:[val_condition boolValue]]">
+            </PersistentString>
+         </PersistentStrings>
       </ContextState>
       <ContextState
          contextName = "-[PDFViewController onActionClick:]:PDFViewController.m">
@@ -71,6 +87,14 @@
             </PersistentString>
          </PersistentStrings>
       </ContextState>
+      <ContextState
+         contextName = "-[PageViewController textView:shouldChangeTextInRange:replacementText:]:PageViewController.m">
+         <PersistentStrings>
+            <PersistentString
+               value = " [decimalString floatValue]">
+            </PersistentString>
+         </PersistentStrings>
+      </ContextState>
       <ContextState
          contextName = "__32-[PDFViewController loadcontent]_block_invoke:PDFViewController.m">
       </ContextState>
@@ -89,16 +113,7 @@
          contextName = "-[PageViewController textViewDidEndEditing:]:PageViewController.m">
          <PersistentStrings>
             <PersistentString
-               value = "textView.text">
-            </PersistentString>
-            <PersistentString
-               value = "12345678*0.1">
-            </PersistentString>
-            <PersistentString
-               value = "[text floatValue]">
-            </PersistentString>
-            <PersistentString
-               value = "[text stringByReplacingOccurrencesOfString:@&quot;$&quot; withString:@&quot;&quot; ] floatValue]">
+               value = "f6-f7">
             </PersistentString>
          </PersistentStrings>
       </ContextState>

+ 7 - 0
Ants Contract/Granite Expo eSign/Granite Expo eSign/GEIC - Home Improvement Contract 2017.json

@@ -156,6 +156,7 @@
         "control_4": {
             "aname": "Telephone",
             "format": "us_tel",
+            "keyboard":"tel",
             "type": "TextView","margin_left":"4",
             "required": true,
             "pos_x": 222,
@@ -183,8 +184,10 @@
             "pos_x": 222,
             "pos_y": 349,
             "width": 183,
+            "keyboard":"number",
             "value_type":"float",
             "height": 30,
+            "format": "price",
             "prefix_str":"$ ",
             "field": "contract_price",
             "action": {
@@ -211,8 +214,10 @@
             "pos_y": 349,
             "width": 85,
             "height": 30,
+            "keyboard":"number",
             "field": "labor_deposit",
             "value_type":"float",
+            "format": "price",
             "prefix_str":"$ ",
             "disable": true,
             "action": {
@@ -285,6 +290,7 @@
             "aname": "Balance on Account",
             "type": "TextView","margin_left":"4",
             "required": true,
+            "prefix_str":"$ ",
             "value_type":"float",
             "pos_x": 222,
             "pos_y": 382,
@@ -782,6 +788,7 @@
             "aname": "Telephone Number",
             "tv_vmargin":0.5,
             "format": "us_tel",
+            "keyboard":"tel",
             "type": "TextView",
             "textAlignment":"center",
             "size":"10",

+ 2 - 2
Ants Contract/Granite Expo eSign/Granite Expo eSign/Info.plist

@@ -15,9 +15,9 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.21</string>
+	<string>1.22</string>
 	<key>CFBundleVersion</key>
-	<string>31055</string>
+	<string>31061</string>
 	<key>LSRequiresIPhoneOS</key>
 	<true/>
 	<key>NSAppTransportSecurity</key>

+ 216 - 14
Ants Contract/common/PageViewController.m

@@ -5,7 +5,7 @@
 //  Created by Ray on 12/16/16.
 //  Copyright © 2016 United Software Applications, Inc. All rights reserved.
 //
-
+#define NUMBERS @"0123456789.\n"
 #import "PageViewController.h"
 
 #import "config.h"
@@ -330,6 +330,24 @@
     
     tv.scrollEnabled=false;
     
+    NSString* tv_format=template[@"keyboard"];
+    if([tv_format isEqualToString:@"tel"])
+    {
+        tv.keyboardType=UIKeyboardTypePhonePad;
+    }
+    else if([tv_format isEqualToString:@"number"])
+    {
+        tv.keyboardType=UIKeyboardTypeNumberPad;
+    }
+    else if([tv_format isEqualToString:@"email"])
+    {
+        tv.keyboardType=UIKeyboardTypeEmailAddress;
+    }
+    else
+    {
+        tv.keyboardType=UIKeyboardTypeDefault;
+    }
+    
     
     //UIColorFromARGB(0x4066ccff);
     
@@ -718,14 +736,34 @@
                             NSString* newvalue = nil;
                             if([value isEqualToString:@"*0.1"])
                             {
-                                float f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue]*0.1;
-                                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
+                                
+                                NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
+                                formatter.numberStyle =kCFNumberFormatterCurrencyStyle;
+                                NSString* prefix_str= self.controlTemplate [control[@"control"] ][@"prefix_str"];
+                                if(prefix_str.length==0)
+                                    prefix_str = @"";
+                                text=[text stringByReplacingOccurrencesOfString:prefix_str withString:@"$"];
+                                double f = [[formatter numberFromString:text] doubleValue]*0.1;
+                                newvalue = [formatter stringFromNumber:[NSNumber numberWithDouble: f]];
+                                
+                                newvalue=[newvalue stringByReplacingOccurrencesOfString:@"$" withString:prefix_str];
+//                                float f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue]*0.1;
+//                                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
                                 self.controlTemplate [control[@"control"] ][@"value"] = newvalue;
                             }
                             else if([value isEqualToString:@"*0.9"])
                             {
-                                float f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue]*0.9;
-                                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
+//                                float f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue]*0.9;
+                                NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
+                                formatter.numberStyle =kCFNumberFormatterCurrencyStyle;
+                                NSString* prefix_str= self.controlTemplate [control[@"control"] ][@"prefix_str"];
+                                if(prefix_str.length==0)
+                                    prefix_str = @"";
+                                text=[text stringByReplacingOccurrencesOfString:prefix_str withString:@"$"];
+                                double f = [[formatter numberFromString:text] doubleValue]*0.9;
+                                newvalue = [formatter stringFromNumber:[NSNumber numberWithDouble: f]];
+                                newvalue=[newvalue stringByReplacingOccurrencesOfString:@"$" withString:prefix_str];
+//                                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
                                 self.controlTemplate [control[@"control"] ][@"value"] = newvalue;
                             }
 
@@ -852,6 +890,40 @@
         
         return NO;
     }
+    else if([tv_format isEqualToString:@"price"])
+    {
+        //        NSMutableString *newString = [[textView.text stringByReplacingCharactersInRange:range withString:text] mutableCopy];
+        //        NSArray *components = [newString componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]];
+        //        NSString *decimalString = [components componentsJoinedByString:@""];
+        //
+        //
+        //
+
+        
+        
+        //
+        //        NSString *newprice = [formatter stringFromNumber:[NSNumber numberWithInt: [decimalString intValue]]];
+        //        
+        //        textView.text = newprice;
+        
+        
+        
+        NSCharacterSet *cs;
+        cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS]invertedSet];
+        //
+        NSString *filtered = [[text componentsSeparatedByCharactersInSet:cs]componentsJoinedByString:@""];
+        
+        BOOL canChange = [text isEqualToString:filtered];
+
+//        if(canChange)
+//        {
+//
+//        }
+        return canChange;
+        
+
+//        return NO;
+    }
     else
     {
 
@@ -891,12 +963,56 @@
 //    self.hotTextView = textView;
 //}
 
+- (void)textViewDidBeginEditing:(UITextView *)textView
+{
+                long index = textView.tag - CONTROL_BASE;
+    NSString* tv_format=self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"format"];
+    if([tv_format isEqualToString:@"price"])
+    {
+        
+        NSString* prefix_str= self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"prefix_str"];
+        if(prefix_str.length==0)
+            prefix_str = @"";
+        
+        
+        NSString* text =[textView.text stringByReplacingOccurrencesOfString:prefix_str withString:@"$"];
+        
+        
+        NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
+        
+        formatter.numberStyle =kCFNumberFormatterCurrencyStyle;
+        NSNumber* number= [formatter numberFromString:text];
+        if(number!=nil)
+            textView.text = [NSString stringWithFormat:@"%.2f",[number doubleValue]];
+    }
+    
+//    NSRange r = textView.selectedRange;
+//    
+//    
+//    textView.selectedRange = NSMakeRange(textView.text.length, 0);
+//    NSRange range;
+//    
+//    range.location = textView.text.length;
+//    
+//    range.length = 0;
+//    
+//    textView.selectedRange = range;
+    
+}
 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView
 {
     
     NSLog(@"textViewShouldBeginEditing");
     
     self.hotTextView = textView;//(UITableViewCell*)textView.superview.superview;
+    
+
+    
+ 
+    
+
+    
+    
     return textView.editable;
 }
 - (void)textViewDidEndEditing:(UITextView *)textView
@@ -909,7 +1025,7 @@
         NSString* prefix_str= self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"prefix_str"];
     if(prefix_str.length==0)
         prefix_str = @"";
-    NSString* text = [textView.text stringByReplacingOccurrencesOfString:prefix_str withString:@""];
+    NSString* text =textView.text;// [textView.text stringByReplacingOccurrencesOfString:prefix_str withString:@""];
     
     NSString* value_type= self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"value_type"];
     if([value_type isEqualToString:@"float"])
@@ -917,7 +1033,28 @@
     
 
 
-    text =[NSString stringWithFormat:@"%@%@",prefix_str,text] ;
+//    text =[NSString stringWithFormat:@"%@%@",prefix_str,text] ;
+
+    
+    
+    if([self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"format"] isEqualToString:@"price"])
+    {
+        text =textView.text;
+
+                NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
+        
+                formatter.numberStyle =kCFNumberFormatterCurrencyStyle;
+        
+        
+        NSNumber * nprice =[NSNumber numberWithDouble: [text doubleValue]];
+        if(text.length==0)
+            nprice=nil;
+                text = [formatter stringFromNumber:nprice];
+                text=[text stringByReplacingOccurrencesOfString:@"$" withString:prefix_str];
+//                textView.text = newprice;
+        //        return NO;
+    }
+    
     
     textView.text = text;
     
@@ -944,25 +1081,90 @@
             NSString* newvalue = nil;
             if([value isEqualToString:@"*0.1"])
             {
-                double f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] doubleValue]*0.1;
-                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
+//                double f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] doubleValue]*0.1;
+                NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
+                formatter.numberStyle =kCFNumberFormatterCurrencyStyle;
+                
+                NSString* prefix_str= self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"prefix_str"];
+                if(prefix_str.length==0)
+                    prefix_str = @"";
+                
+                if(text.length==0)
+                {
+                    newvalue=nil;
+                }
+                else
+                {
+                    text=[text stringByReplacingOccurrencesOfString:prefix_str withString:@"$"];
+                    double f = [[formatter numberFromString:text] doubleValue]*0.1;
+                    
+//                    if(tv==self.hotTextView)
+//                    {
+//                        
+//                        newvalue = [NSString stringWithFormat:@"%.2f",f];
+//                    }
+//                    else
+                    {
+                        newvalue = [formatter stringFromNumber:[NSNumber numberWithDouble: f]];
+                        newvalue=[newvalue stringByReplacingOccurrencesOfString:@"$" withString:prefix_str];
+                        //                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
+                    }
+                }
+
                 
                 self.controlTemplate [control[@"control"] ][@"value"] = newvalue;
             }
             else if([value isEqualToString:@"*0.9"])
             {
-                double f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] doubleValue]*0.9;
-                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
+//                double f= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] doubleValue]*0.9;
+                NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
+                formatter.numberStyle =kCFNumberFormatterCurrencyStyle;
+                
+                NSString* prefix_str= self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"prefix_str"];
+                if(prefix_str.length==0)
+                    prefix_str = @"";
+                
+                if(text.length==0)
+                {
+                    newvalue=nil;
+                }
+                else
+                {
+                text=[text stringByReplacingOccurrencesOfString:prefix_str withString:@"$"];
+                double f = [[formatter numberFromString:text] doubleValue]*0.9;
+                newvalue = [formatter stringFromNumber:[NSNumber numberWithDouble: f]];
+                newvalue=[newvalue stringByReplacingOccurrencesOfString:@"$" withString:prefix_str];
+                }
+//                newvalue = [NSString stringWithFormat:@"$ %.2f",f];
                 self.controlTemplate [control[@"control"] ][@"value"] = newvalue;
             }
             else if([value isEqualToString:@"control_6-control_7"])
             {
                 
                 UITextView* tv6 = (UITextView*) [self findControl:@"control_6"];
-                float f6= [[tv6.text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue];
+//                float f6= [[tv6.text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue];
+//                
+//                float f7= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue];
+                
+
+                
+                NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
+                formatter.numberStyle =kCFNumberFormatterCurrencyStyle;
                 
-                float f7= [[text stringByReplacingOccurrencesOfString:@"$" withString:@"" ] floatValue];
-                newvalue = [NSString stringWithFormat:@"$ %.2f",f6-f7];
+                NSString* prefix_str= self.controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ][@"prefix_str"];
+                if(prefix_str.length==0)
+                    prefix_str = @"";
+                NSString * text6=[tv6.text stringByReplacingOccurrencesOfString:prefix_str withString:@"$"];
+                text=[text stringByReplacingOccurrencesOfString:prefix_str withString:@"$"];
+                double f6 =0.0;
+//                if(tv6==self.hotTextView)
+//                    f6=[tv6.text doubleValue];
+//                else
+                    f6=[[formatter numberFromString:text6] doubleValue];
+                double f7 = [[formatter numberFromString:text] doubleValue];
+                newvalue = [formatter stringFromNumber:[NSNumber numberWithDouble: f6-f7]];
+                newvalue=[newvalue stringByReplacingOccurrencesOfString:@"$" withString:prefix_str];
+//                newvalue = [NSString stringWithFormat:@"$ %.2f",f6-f7];
                 self.controlTemplate [control[@"control"] ][@"value"] = newvalue;
             }