UITextField
特定の形式と特定の形式の通貨フィールドとしてフォーマットする簡単な方法を実装しようとしてUIKeyboardType
います。形式については、デリゲートを割り当てて、それを処理させます。
私の .h-file には次が含まれます: @interface UITextField (Currency)
... @interface CurrencyTextFieldDelegate <UITextFieldDelegate>
、および私の .m-file は以下に出力されます。
できるようになりたいですUITextField *textField = [...]; [textField formatAsCurrency];
。テンキーは正しく表示されますが、shouldChangeCharactersInRange が呼び出されることはありません。
私の推測では、formatAsCurrency が実行されるとすぐにデリゲートが解放されるのでしょうか? 知らない。何かご意見は?
#import "CurrencyTextFieldDelegate.h"
@implementation UITextField (Currency)
- (void)formatAsCurrency {
CurrencyTextFieldDelegate *delegateViewController = [[CurrencyTextFieldDelegate alloc] init];
self.delegate = delegateViewController;
self.keyboardType = UIKeyboardTypeNumberPad;
}
@end
@implementation CurrencyTextFieldDelegate
@synthesize storedAmount = _storedAmount;
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSLog(@"shouldChangeCharactersInRange");
// magic happens
return NO;
}
@end