Позвольте мне сначала заявить, что это не вопрос правильного выбора имени моего селектора, ни установки целевого значения кнопки в loadView, ни каких-либо других предложений, которые я видел за последние 4 часа просмотра.Я должен также объяснить, что я не использую ни перья, ни IB.
Эти кнопки работали на большую часть разработки.
Тогда пуф!Это не только кнопки.Мои таблицы не прокручиваются.Нажатие на ячейки в табличных представлениях не вызывает действия, которые я настроил.
Кажется, я полностью разорвал цепочку респондента;или что-то в этом роде.
Чтобы попытаться сузить источник проблемы созданного проекта на основе окон;убрал все, что генерирует xCode;удалил перо;и скопировал несколькими способами из моего исходного приложения делегата и моего rootViewController.
Это RVT, который содержит подвид, который содержит кнопки.Довольно просто.Тот же эффект.Я буквально удалил весь функциональный код, но следующий источник в appDelegate.m:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[UIApplication sharedApplication] setDelegate:self];
if(window == nil)
window = [[UIWindow alloc] init];
window.autoresizesSubviews = YES;
if(controller == nil)
controller = [[Controller alloc] init];
window.rootViewController = controller;
[window makeKeyAndVisible];
return YES;
}
-(void)dealloc {
[window release];
[controller release];
[super dealloc];
}
А в Controller:
- (void)buttonResponse {
NSLog(@"Button touched up inside!!!!!");
}
- (void)loadView {
[super loadView];
//test
button = [UIButton buttonWithType:UIButtonTypeCustom];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Button" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:filePath];
CGSize imageSize = [image size];
CGRect buttonFrame = CGRectMake(0,0,imageSize.width + 100, BUTTONBAR_H + 100);
button.frame = buttonFrame;
[button setImage:image forState:UIControlStateNormal];
button.backgroundColor = [UIColor blueColor];
[button setTitle:@"" forState:UIControlStateNormal];
button.userInteractionEnabled = YES;
[button addTarget:self action:@selector(buttonResponse) forControlEvents: UIControlEventTouchUpInside];
UIView *view = self.view;
CGRect viewFrame = view.frame; //self.view is valid and takes up available screen
[self.view addSubview:button];
[self.view bringSubviewToFront:button];
//end test
[self.view setNeedsDisplay];
}
- (void)dealloc {
[button release];
[super dealloc];
}
Я знаю, что это должно быть что-то действительно простое.Но я не вижу этого.Я бы предпочел оставить свои волосы на месте.Мне интересно, произойдет ли это, когда я продолжу изучать причуды.