Я создал очень простое приложение для iPhone с приложением File / New Projet / View-Based.
Там нет файла NIB.
Вот мое приложение Delegate
.h
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
MyViewController *viewController;
}
.m
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after app launch
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
А вот мой метод loadView в моем контроллере
- (void)loadView {
CGRect mainFrame = [[UIScreen mainScreen] applicationFrame];
UIView *contentView = [[UIView alloc] initWithFrame:mainFrame];
contentView.backgroundColor = [UIColor redColor];
self.view = contentView;
[contentView release];
}
Теперь, чтобы поймать событие touchesBegan, я создал новый подкласс UIView:
.h
@interface TouchView : UIView {
}
.m
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"Touch detected");
}
и изменил вторую строку в моем loadView в это:
TouchView *contentView = [[UIView alloc] initWithFrame:mainFrame];
Почему touchSegan никогда не вызывается?