【问题标题】:UIButton isn't activeUIButton 未激活
【发布时间】:2016-01-30 17:10:36
【问题描述】:

我从 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 上找到答案。

【问题讨论】:

  • 按钮是否出现了?
  • 是的,我可以看到但不能按下它
  • 添加目标操作应该可以工作
  • 不幸的是没有

标签: ios objective-c addsubview


【解决方案1】:

由于某种原因,按钮顶部有一个视图,它阻止按钮接收操作(按下)。您所要做的就是添加:

[self.window bringSubviewToFront:button];

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

【讨论】:

  • 非常感谢,它有帮助!
  • 太棒了,如果这回答了您的问题(或任何其他答案),请单击检查。它将帮助其他人找到正确的答案。如果这有助于您的问题(或任何其他答案),请对该问题进行投票。
【解决方案2】:

尝试添加这些行

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

这是一个在按钮被点击时调用的方法

- (void) hello:(id) sender
{


   NSLog(@"helloooo");
}

【讨论】:

    【解决方案3】:

    首先,您的身高为 10,这非常小。也许你没有击中它。

    您可以在 AppDelegate 中执行此操作,但您通常希望使用 ViewController。如果您是 iOS 开发的新手,您肯定不希望在 AppDelegate 中包含这些内容。 我建议在 ViewController 中执行所有这些操作,因为它覆盖在 UIWindow 之上。

    此外,您必须添加 @rahul-patel 以测试它是否已启用。

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

    【讨论】:

    • 问题已解决,但感谢您的建议,我会阅读的!
    • 是的,看起来@matthew-s 有解决方案,如果有帮助,请检查,如果没有,请检查或两者都不检查。那么您是否希望拥有一个始终覆盖 UIViewControllers 的按钮?
    • 检查了马修的回答,谢谢。我是新来的,所以只是学习规则:)
    • 我只是想验证我对 developer.apple.com 上指南的理解,所以我的代码只是一个示例,而不是实际应用程序的一部分。
    • 是的,没问题,如果答案对您有所帮助,即使它不是确切的解决方案,如果它包含好的信息,您也可以投票。如果它是确切的解决方案,你会想要检查它是否正确(我看到你在正确答案上这样做了),你也可以投票正确答案。如果答案不正确,请投反对票,以免其他人尝试这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2023-03-08
    • 2013-02-15
    相关资源
    最近更新 更多