我试图实现一种简单的方法来将UITextField
格式化为具有某种UIKeyboardType
和某种格式的货币字段。对于格式,我分配一个委托并让它处理它。委托的分配得到释放
我的.h文件包含:@interface UITextField (Currency)
... @interface CurrencyTextFieldDelegate <UITextFieldDelegate>
,我的.m文件打印如下。
我希望能够做到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
这是有点不清楚你想要做什么。委托通常是控制器的视图中的文本字段出现英寸你不能有一个类别的属性(与伊娃支持),所以我不认为有一种方法来强有力的指针,该类别中的委托。 – rdelmar 2013-03-19 15:50:49