Ich habe UITextField subclassiert, damit ich einige benutzerdefinierte Verhaltensweisen dafür erstellen kann. Hier sind meine Klassen:Objective C IPhone Subclassing UITextField catch Wert geändert
DataboundTextField.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "TestEntities.h"
@interface DataboundTextField : UITextField <UITextFieldDelegate> {
NSString *valueMember;
NSString *displayValueMember;
ODataObject *boundEntity;
}
@property (nonatomic, retain) NSString *valueMember;
@property (nonatomic, retain) NSString *displayValueMember;
@property (nonatomic, retain) ODataObject *boundEntity;
-(void)SetupDataBinding:(ODataObject*)oDataEntity ValueMember:(NSString*)valMemberID DisplayValueMember:(NSString*)disValMember;
@end
DataboundTextField.m
#import "DataboundTextField.h"
@implementation DataboundTextField
@synthesize valueMember;
@synthesize displayValueMember;
@synthesize boundEntity;
-(id) initWithCoder:(NSCoder *)aDecoder{
if ((self = [super initWithCoder:aDecoder]))
{
self.delegate = self;
}
return self;
}
-(void)SetupDataBinding:(ODataObject*)oDataEntity ValueMember:(NSString*)valMemberID DisplayValueMember:(NSString*)disValMember{
}
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
return YES;
}
@end
Wie gehe ich über das Überschreiben der Value Ereignis? Ich kann es anscheinend nicht fangen, aber ich versuche es. Alles, was ich tun möchte, ist, eines dieser untergeordneten Textfelder in einer Ansicht zu finden und dieses Ereignis zu erfassen und damit umzugehen.
Bitte helfen.
Vielen Dank im Voraus
Je nachdem, was Sie mit dem UITextField tun müssen, müssen Sie möglicherweise keine Unterklasse erstellen. Mit den UITextFieldDelegate-Methoden kann viel geschehen. –
Ich möchte, dass diese Klasse während des gesamten Projekts wiederverwendbar ist, also denke ich nicht, dass die Verwendung eines Delegaten ausreicht. – IPadHackAndSlash