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,
#import "AppDelegate.h"
Then you should cast the returned delegate in your nested method call to be your delegate type. For example:
[(AppDelegate *)[[UIApplication sharedApplication] delegate] specifyStartLevel];
Add your method in AppDelegate.h
file such as:
- (void)Welcome
Implement the method in AppDelegate.m
file such as:
- (void)Welcome
{
NSLog(@"Welcome")
}
Set the UIApplication
delegate in method such as:
AppDelegate *appDelegate=[UIApplication sharedApplication] delegate];
[appDelegate Welcome];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With