2011-05-13 41 views
0

我在我的Cocos2d應用程序中有一個文本字段,當我點擊它開始輸入時,應用程序崩潰。我沒有更多的解釋,這裏是我的代碼: .H:第一次攻擊時奇怪的崩潰UITextField

@interface myScene : CCLayer <UITextFieldDelegate> { ....... } 
@property (nonatomic, retain, readonly) UITextField *first; 
@property (nonatomic, retain, readonly) UITextField *second; 

.mm:

@implementation myScene 
    @synthesize first, second; 
    ...... 
     first = [[UITextField alloc] initWithFrame:CGRectMake(160.0, 160.0, 200.0, 30.0)]; 
     first.placeholder = @"first"; 
     first.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction suppor 
     first.keyboardType = UIKeyboardTypeDefault; // use the default type input method (entire keyboard) 
     first.returnKeyType = UIReturnKeyDone; 
     first.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right 
     first.autocapitalizationType = UITextAutocapitalizationTypeNone; 
     CGAffineTransform transform = CGAffineTransformMakeRotation(3.14159/2); 
     first.transform = transform; 
     first.adjustsFontSizeToFitWidth = YES; 
     first.textColor = [UIColor blackColor]; 
     [first setFont:[UIFont fontWithName:@"Arial" size:14]]; 
     first.backgroundColor = [UIColor clearColor]; 
     first.borderStyle = UITextBorderStyleRoundedRect; 
     first.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed 
     [[[CCDirector sharedDirector] openGLView] addSubview: first]; 


     second = [[UITextField alloc] initWithFrame:CGRectMake(130.0, 160.0, 200.0, 30.0)]; 
     second.placeholder = @"second"; 
     second.returnKeyType = UIReturnKeyDone; 

     second.transform = transform; 
     second.adjustsFontSizeToFitWidth = YES; 
     second.textColor = [UIColor blackColor]; 
     [second setFont:[UIFont fontWithName:@"Arial" size:14]]; 
     second.backgroundColor = [UIColor clearColor]; 
     second.borderStyle = UITextBorderStyleRoundedRect; 
     second.secureTextEntry = YES; 
     second.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed 
     [[[CCDirector sharedDirector] openGLView] addSubview: second]; 

............... 


    - (BOOL)textFieldShouldReturn:(UITextField *)textField 
    { 
     // the user pressed the "Done" button, so dismiss the keyboard 
     [textField resignFirstResponder]; 
     return YES; 
    } 

我上的Xcode 4運行與iOS 4.3和當我點擊一個字段我得到EXC_BAD_ACCESS和Xcode中指出我的main.m:

#import <UIKit/UIKit.h> 

int main(int argc, char *argv[]) { 
    NSAutoreleasePool *pool = [NSAutoreleasePool new]; 
    int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 
    [pool release]; 
    return retVal; 
} 

Xcode的指示線:int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");

謝謝。

+0

把你的崩潰日誌... – Jhaliya 2011-05-13 19:14:12

+0

Jhaliya是正確的。你還有更多需要解釋的東西,那就是你的應用程序崩潰時的確切消息和其他行爲。 – 2011-05-13 19:21:55

+0

補充,對不起... – user465166 2011-05-13 19:23:10

回答

1

我不認爲這是在openGL視圖中添加文本字段的最佳方式,實際上我不確定它會起作用。你可能需要在UIViewController子類中有你的字段,然後將該類的視圖添加到你的openGLView,或者有一個很好的UIViewWrapper,你可以得到here。它可以讓你添加UIView元素到你的CCLayer。希望這有助於

+0

謝謝。我使用鏈接,它的工作原理。 – user465166 2011-05-13 19:59:08