我有一個獲取信用卡輸入的UITextField。如何在用戶輸入第4個字符後自動插入短劃線,就像用戶輸入自己的信用卡號時iOS的Groupon應用程序所做的那樣?提前致謝。如何在Objective-C的每個第四個字符後面輸入破折號
1
A
回答
0
0
這很難,我想。當文本更改時發送的通用通知是UITextFieldTextDidChangeNotification。在viewDidLoad方法中,您應該向接收者註冊此通知,並在文本更改時執行選擇器。在選擇器中,每4個字符添加一個破折號。
在我的代碼中,文本字段被命名爲textField。
- (void)viewDidLoad
{
[super viewDidLoad];
NSNotificationCenter* center=[NSNotificationCenter defaultCenter];
[center addObserver: self selector: @selector(textDidChange:) name: UITextFieldTextDidChangeNotification object: textField];
}
- (void) textDidChange : (NSNotification*) notification
{
NSString* string=[[textField text] stringByReplacingOccurrencesOfString: @"-" withString: @""];
__block NSMutableString* newString= [string mutableCopy];
NSMutableIndexSet* set=[NSMutableIndexSet new];
for(NSUInteger i=4; i<[string length];i+=4)
{
[set addIndex: i+i/4-1];
}
[set enumerateIndexesInRange: NSMakeRange(0, [string length]+[string length]/4) options: 0 usingBlock: ^(NSUInteger index, BOOL* stop)
{
[newString insertString: @"-" atIndex: index];
}];
[textField setText: newString];
}
每4個字符添加破折號的代碼很長,也許有一個更簡單的方法來做到這一點。
PS:最後的版本不正確,我編輯它(無法正確刪除字符)。
相關問題
- 1. 在輸入中的每第四個字符後插入破折號
- 2. 破折號後大寫第一個字符
- 3. 替換第2個和第3個破折號後出現的字符
- 4. 在最後三個字符之前插入破折號
- 5. 如何從後面修剪字符串直到破折號?
- 6. 在c中的每個字符後面插入一個逗號#
- 7. 用空格jquery替換每個第四個輸入值之後?
- 8. 刪除Java字符串中的破折號並在破折號後面大寫字符
- 9. 如何檢查一個字符串中有2個破折號?
- 10. 字符串掩碼 - 插入破折號
- 11. 用破折號去除破折號後的大寫字母
- 12. git的差異一個破折號和兩個破折號
- 13. 一個破折號
- 14. 在第一個「 - 」破折號之後提取文本
- 15. 如何在句子中的第四個字符之後添加逗號?
- 16. PHP - 將一個字符串與破折號同時去除第一個字
- 17. 刪除第一個星號或破折號R中的字符串
- 18. 排序後的字母字符nonalphabet字符(破折號)
- 19. 加入每四個字符串列表
- 20. 輸入字符的字符串,第2個字符後
- 21. 正則表達式大寫首字母每一個字,之後還像一個破折號特殊字符
- 22. 在SQL如何我排除的記錄,如果有3個以上的字符,一個破折號後
- 23. 在java中輸出用戶輸入的字符串的每第三個字符
- 24. 將數組中的物品每5個項目添加一個破折號並在php中添加破折號
- 25. 使每個字符輸入
- 26. 在Python中的字符串中刪除最後一個破折號後的所有字符,並測試數字?
- 27. 替換輸入的每個第5個字符(空格計數)
- 28. 將破折號放在一個字符串中
- 29. 如何獲得最後四位和第一個字符?
- 30. PHP:爆炸在字符串中的2個破折號的字符串
這應該會對您有所幫助:http://stackoverflow.com/a/6968689/5228 – Mariusz
謝謝。將嘗試它。 – jaytrixz