UIButton не активен


Я начал изучать программирование iOS с книги Аарона Хиллегаса, и я обнаружил, что некоторые образцы не работают. Может быть, они не работают, потому что есть новая версия iOS и Xcode. Не могли бы вы объяснить мне, почему этот код не работает? Кнопка создается; однако она не получает нажатия.

- (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;
}

Популярный совет по такому вопросу вот добавить

    button.userInteractionEnabled = YES;

Но это не помогает.

Извините, если мой вопрос прост, но я потратил несколько часов чтобы найти ответ здесь и далее developer.apple.com.

3 3

3 ответа:

По какой-то причине сверху кнопки есть вид, который мешает кнопке получать действия (нажатия). Все, что вам нужно сделать, это добавить:

[self.window bringSubviewToFront:button];

Эта строка кода поместит вашу кнопку поверх стека представлений. Ура

Попробуйте добавить эти строки

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

И это метод, который будет вызван, когда кнопка будет нажата

- (void) hello:(id) sender
{


   NSLog(@"helloooo");
}

Во-первых, у вас рост 10, и это довольно мало. Может быть, ты не попадаешь в него.

Вы можете сделать это в AppDelegate, но обычно вы хотите использовать ViewController. Если вы новичок в разработке iOS, вы, конечно, не хотите иметь ничего из этого в AppDelegate. Я бы рекомендовал делать все это в ViewController, потому что он накладывается поверх UIWindow.

Кроме того, вы должны добавить what @rahul-patel, чтобы даже проверить, включен ли он или нет.

Обновление: я полностью согласен с другими ответами. Все это должно/должно быть сделано. Добавьте то, что есть у @rahul-patel и @matthew-s

Ios Свифт swift2 xcode