デバイスでサブクラス化された UITextfield にテキストを入力しようとすると、2 つまたは 3 つの文字が入力され、アプリがフリーズします。キーボードを閉じたり、タブに触れたりすることはできません。UITextField サブクラスは次のとおりです。
@implementation OAI_TextField
@synthesize elementID;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
colorManager = [[OAI_ColorManager alloc] init];
fileManager = [[OAI_FileManager alloc] init];
self.font = [UIFont fontWithName:@"Helvetica" size:20.0];
self.textColor = [colorManager setColor:66.0 :66.0 :66.0];
self.borderStyle = UITextBorderStyleRoundedRect;
self.backgroundColor = [UIColor whiteColor];
self.returnKeyType = UIReturnKeyDone;
self.delegate = self;
}
return self;
}
#pragma mark Text Field Delegate Methods
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self resignFirstResponder];
//if project number text field we're going to check and see if the "Project" directory contains the file, if not we'll create it
//get super view
UIView* myParent = self.superview;
//get the subviews
NSArray* mySiblings = myParent.subviews;
//get the label
UILabel* myLabel = [mySiblings objectAtIndex:0];
//get the label text
NSString* myLabelText = myLabel.text;
//check it!
if ([myLabelText isEqualToString:@"Project Number:"]) {
NSString* projectNumberPlist = [NSString stringWithFormat:@"%@.plist", self.text];
NSString* projectNumberPlistPath = [NSString stringWithFormat:@"Projects/%@", projectNumberPlist];
[fileManager createFile:projectNumberPlist:projectNumberPlistPath];
}
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
NSLog(@"ok");
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/
@end
(void)textFieldDidBeginEditing: で NSLog 呼び出しを取得します。コンソールにエラー メッセージは表示されません。これをデバッグする場所がよくわかりません。誰かが私にナッジを与えることができますか?
ありがとう