2012-11-22 5 views
8

मैं इस शेयर बाजार कैलकुलेटर है कि मैं पर काम कर रहा हूँ है और मैं खोजा Stackoverflow पर एप्पल प्रलेखन, इंटरनेट, यहाँ है, लेकिन इस सवाल का जवाब खोजने में सफल नहीं रहा था ..UITextfield में टाइप करते समय और बाद में मुद्रा प्रतीक कैसे डालें?

मैं एक UITextfield है जो उपयोगकर्ता होगा में मुद्रा मूल्य इनपुट करें। मैं जो कार्यान्वित करना चाहता हूं वह यह है कि जब उपयोगकर्ता टाइप कर रहा है या कम से कम समाप्त होने के बाद टेक्स्ट फ़ील्ड उस लोकेल के अनुरूप मुद्रा प्रतीक भी प्रदर्शित करेगा।

यह प्लेसहोल्डर की तरह है, लेकिन हमारे पास एक्सकोड में नहीं है, क्योंकि टाइप करने से पहले एक्सकोड्स वहां है और मैं इसे लिखने के दौरान वहां होना चाहिए। मैं इसमें पृष्ठभूमि के साथ पृष्ठभूमि छवि का उपयोग कर सकता हूं, लेकिन फिर मैं ऐप को स्थानीयकृत नहीं कर पाऊंगा।

तो यदि कोई मदद कर सकता है, तो मैं सराहना करता हूं।

अग्रिम धन्यवाद।

+0

'एक्सकोड के मुद्रा चिह्न' से आपका क्या मतलब है? –

उत्तर

5

सबसे आसान तरीका आपके टेक्स्ट फ़ील्ड के विरुद्ध दाएं संरेखित टेक्स्ट के साथ एक लेबल डालना होगा, जो गठबंधन पाठ छोड़ देता।

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
     self.currencyLabel.text = [[NSLocale currentLocale] objectForKey:NSLocaleCurrencySymbol]; 
    } 

आप पाठ फ़ील्ड में पाठ के भाग के रूप में रखना चाहते हैं, तो यह के रूप में आप की जरूरत है एक छोटे से अधिक जटिल हो जाता:

उपयोगकर्ता पाठ फ़ील्ड संपादित करने के लिए शुरू होता है, मुद्रा प्रतीक सेट उन्हें प्रतीक को हटाने से रखने के एक बार आप इसे वहाँ रख: @Aadhira बताते

// Set the currency symbol if the text field is blank when we start to edit. 
- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    if (textField.text.length == 0) 
    { 
     textField.text = [[NSLocale currentLocale] objectForKey:NSLocaleCurrencySymbol]; 
    } 
} 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

    // Make sure that the currency symbol is always at the beginning of the string: 
    if (![newText hasPrefix:[[NSLocale currentLocale] objectForKey:NSLocaleCurrencySymbol]]) 
    { 
     return NO; 
    } 

    // Default: 
    return YES; 
} 

रूप में, आप भी एक नंबर फ़ॉर्मेटर जब से तुम यह उपयोगकर्ता के लिए प्रदर्शित कर रहे हैं का उपयोग करके मुद्रा स्वरूपण होना चाहिए।

3

आपको इसे प्राप्त करने के लिए NSNumberFormatter का उपयोग करना होगा।

निम्न कोड आज़माएं, और इसके बाद, जब आप मान दर्ज करते हैं और जब आप संपादन समाप्त करते हैं, तो मान वर्तमान मुद्रा के साथ स्वरूपित किए जाएंगे।

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

    NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease]; 
    [currencyFormatter setLocale:[NSLocale currentLocale]]; 
    [currencyFormatter setMaximumFractionDigits:2]; 
    [currencyFormatter setMinimumFractionDigits:2]; 
    [currencyFormatter setAlwaysShowsDecimalSeparator:YES]; 
    [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 

    NSNumber *someAmount = [NSNumber numberWithDouble:[textField.text doubleValue]]; 
    NSString *string = [currencyFormatter stringFromNumber:someAmount]; 

    textField.text = string; 
} 
संबंधित मुद्दे