Following the solution (the highest-voted answer actually) at UITextField Example in Cocos2d, I managed to do it except the line
[[[UIApplication sharedApplication] delegate] specifyStartLevel];
I have placed it in my scene, I get this warning:
Instance method ‘-specifyStartLevel’ not found (return type defaults to ‘id’)
Why is that? I clearly have -specifyStartLevel defined in the header and implementation of my AppDelegate…
Edit: Declaration of specifyStartLevel
#import <UIKit/UIKit.h>
@class RootViewController;
@interface AppDelegate : NSObject <UIApplicationDelegate,UITextFieldDelegate> {
UIWindow *window;
UITextField *levelEntryTextField;
RootViewController *viewController;
}
- (void)specifyStartLevel;
@property (nonatomic, retain) UIWindow *window;
@end
And implementation:
- (void)specifyStartLevel
{
[levelEntryTextField setText:@""];
[window addSubview:levelEntryTextField];
[levelEntryTextField becomeFirstResponder];
}
Right now, your class doesn’t know anything about your delegate’s methods. You need to import your delegate into your implementation, not your interface (to avoid cycled imports).
For example,
Then you should cast the returned delegate in your nested method call to be your delegate type. For example: