El button UIB no está activo.

Empecé a estudiar progtwigción iOS con un libro de Aaron Hillegass, y he descubierto que algunas muestras no funcionan. Tal vez no funcionan porque hay una nueva versión de iOS y Xcode. ¿Podrías explicarme por qué este código no funciona? El button se está creando; sin embargo, no está recibiendo prensas.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = [[UIViewController alloc] init]; button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setFrame:CGRectMake(10,50,100,10)]; [button setTitle:@"OK" forState:UIControlStateNormal]; self.window.backgroundColor = [UIColor whiteColor]; [self.window addSubview:button]; [self.window makeKeyAndVisible]; return YES; } 

El consejo popular sobre este tipo de preguntas aquí es agregar

  button.userInteractionEnabled = YES; 

pero no ayuda.

Lo siento si mi pregunta es simple, pero pasé varias horas para encontrar una respuesta aquí y en developer.apple.com.

Por alguna razón, hay una vista en la parte superior del button, que impide que el button reciba acciones (presiona). Todo lo que tienes que hacer es agregar:

 [self.window bringSubviewToFront:button]; 

Esta línea de código pondrá su button en la parte superior de la stack de vistas. Aclamaciones

intente agregar estas líneas

 [button addTarget:self action:@selector(hello:) forControlEvents:UIControlEventTouchUpInside]; 

y este es un método que se llamará cuando se click el button

 - (void) hello:(id) sender { NSLog(@"helloooo"); } 

Primero tienes la altura de 10 y eso es bastante pequeño. Quizás no lo estés golpeando.

Puede hacer esto en AppDelegate, pero generalmente desea usar ViewController . Si eres nuevo en el desarrollo de iOS, desde luego no quieres tener nada de esto en AppDelegate. Recomendaría hacer todo esto en un ViewController porque está superpuesto sobre la UIWindow .

Además, debe agregar lo que @ rahul-patel para probar incluso si está habilitado o no.

Actualización: estoy totalmente de acuerdo con las otras respuestas. Todo esto debe / debe hacerse. Agregue lo que @ rahul-patel y @ matthew-s tienen

ios swift swift2 xcode