【发布时间】:2016-01-12 14:18:55
【问题描述】:
我正在使用与主应用共享的代码实现 iOS 操作扩展。其中一些使用[[UIApplication sharedApplication] sendAction:to:from:event] 向第一响应者发送操作。
由于sharedApplication 在扩展中不可用,因此此代码将无法编译。
我尝试了一种解决方法,即实例化一个UIControl,并使用-[UIControl sendAction:to:forEvent:] 从它发送一个动作。这可行,但有一个很大的缺点(除了感觉很hacky):无法控制发件人(这将是UIControl 实例),在我的情况下这是必要的。
我正在考虑的另一个解决方法是通过观察 UIApplication 通知并从中获取 object 属性来检索包装扩展的 UIApplication 对象(我已经确认其中一些通知仍在扩展中发送。)但是,即使这确实有效,它是否有机会获得 Apple 的批准,因为它只是在欺骗sharedApplication 限制?有人在实时应用中体验过这种技术吗?
谢谢!
【问题讨论】:
-
我对相同的功能感兴趣。你找到正确的方法来实现它了吗?
-
我不满意。我实例化了一个假的 UIControl 子类实例,如第二段中所述,我将 nextResponder 设置为我感兴趣的实际发送者。
标签: ios objective-c cocoa-touch uikit