我試圖實現一種簡單的方法來將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