iOS:今天小部件中的点击按钮不调用操作

iOS:今天小部件中的点击按钮不调用操作,ios,swift,swift2,ios9-today-widget,Ios,Swift,Swift2,Ios9 Today Widget,我有三个文件: SummaryView.xib->包含我的视图的大纲 SummaryView.swift->上面视图的控制器,带有为子视图定义的出口(如本问题中讨论的按钮) TodayViewController.swift->“今日”小部件的控制器 我正在使用以下代码在TodayViewController中加载SummaryView.xib: var summaryView: SummaryView! summaryView = UINib(nibName: "SummaryView", b

我有三个文件:

  • SummaryView.xib->包含我的视图的大纲
  • SummaryView.swift->上面视图的控制器,带有为子视图定义的出口(如本问题中讨论的按钮)
  • TodayViewController.swift->“今日”小部件的控制器
  • 我正在使用以下代码在TodayViewController中加载SummaryView.xib:

    var summaryView: SummaryView!
    summaryView = UINib(nibName: "SummaryView", bundle: NSBundle.mainBundle()).instantiateWithOwner(SummaryView.self, options: nil)[0] as! SummaryView
    
    xib包含一个按钮,其出口在控制器SummaryView.swift中定义:

    @IBOutlet weak var openAppButton: UIButton!    
    @IBAction func openAppButtonClicked(sender: AnyObject) {
        let url = NSURL(string: "MyApp://")
        sender.extensionContext!!.openURL(url!, completionHandler: nil)
    }
    
    不幸的是,在单击按钮时从未调用此函数。之后,我在Today小部件的控制器中定义了一个额外的目标:

    summaryView.openAppButton.userInteractionEnabled = true
    summaryView.openAppButton.addTarget(self, action:#selector(TodayViewController.openApp(_:)), forControlEvents: UIControlEvents.TouchUpInside)
    
    连同方法

    func openApp(sender: AnyObject) {
        let url = NSURL(string: "MyApp://")
        sender.extensionContext!!.openURL(url!, completionHandler: nil)
    }
    
    但是这个方法也没有被调用

    但是,单击确实会触发一些事情,因为我可以在控制台中看到以下条目:

    2016-09-21 14:51:45.667049 My App Widget[7546:1001683] subsystem: com.apple.UIKit, category: GestureEnvironment, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
    2016-09-21 14:51:45.667669 My App Widget[7546:1001683] subsystem: com.apple.UIKit, category: GestureExclusion, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
    
    我错过了什么


    干杯

    您解决了这个问题吗?