Ios UIButton不是';不活跃

Ios UIButton不是';不活跃,ios,objective-c,addsubview,swift,swift2,xcode,Ios,Objective C,Addsubview,Swift,Swift2,Xcode,我从Aaron Hillegass的一本书开始研究iOS编程,我发现有些示例不起作用。也许他们不工作,因为有一个新版本的iOS和Xcode。你能解释一下为什么这个代码不起作用吗?正在创建按钮;然而,它没有收到新闻稿 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow

我从Aaron Hillegass的一本书开始研究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上找到了答案。

尝试添加这些行

[button addTarget:self action:@selector(hello:) forControlEvents:UIControlEventTouchUpInside];
这是一个在点击按钮时调用的方法

- (void) hello:(id) sender
{


   NSLog(@"helloooo");
}

出于某种原因,按钮顶部有一个视图,它阻止按钮接收操作(按下)。您只需添加:

[self.window bringSubviewToFront:button];

这行代码将把您的按钮放在视图堆栈的顶部。干杯

首先,你的身高是10,这相当小。也许你没有击中它

您可以在AppDelegate中执行此操作,但通常需要使用
ViewController
。如果您是iOS开发新手,您当然不希望在AppDelegate中包含这些内容。 我建议在ViewController中执行所有这些操作,因为它覆盖在
ui窗口的顶部

此外,如果启用或未启用@rahul patel,则必须将其添加到偶数测试中

更新:我完全同意其他答案。所有这些都必须/应该做。添加@rahul patel和@matthew-s的内容


按钮是否出现了?是的,我可以看到但不能按它添加目标操作应该可以正常工作。不幸的是,这很有帮助!太棒了,如果这回答了你的问题(或任何其他答案),请点击检查。它将帮助其他人找到正确的答案。如果这有助于您的问题(或任何其他答案),请对问题进行投票。问题已解决,但感谢您的建议,我将阅读相关内容!是的,看起来@matthew-s有了解决方案,如果这有帮助,检查一下,如果没有,检查一下,或者两者都没有。那么,您是否希望有一个始终覆盖UIViewController的按钮?查看Mathew的答案,谢谢。我是新来的,所以只是学习一些规则:)我只是想验证我对developer.apple.com上的指南的理解,所以我的代码只是一个示例,不是真正应用程序的一部分。是的,没问题,如果答案对你有帮助,即使它不是确切的解决方案,如果它包含好的信息,你也可以投票。如果它是精确解,你会想检查它是否正确(我看到你在正确答案上这么做了),你也可以投票选出正确答案。如果答案不正确,请投反对票,这样其他人就不会尝试这样做。