0

我已经使用 NSUserActivity 实现了 HandOff,我最初直接在我的 ViewController 类中实现了以下方法,并且一切都按预期工作。

-(void)updateUserActivityState:(NSUserActivity *)userActivity
-(void)restoreUserActivityState:(NSUserActivity *)activity
-(void)userActivityWasContinued:(NSUserActivity *)userActivity

由于我计划实现许多 Activity 类型,我认为创建一个单独的类来实现这些方法而不是复制类似的代码会很有用,让我们称之为 HandOffClass。此类成功创建 NSUserActivity 并将其分配给特定 ViewController 的 UserActivity 属性。这几乎可以工作,但是上面的两个方法是由 UIResponder 实现的,并且当包含在 HandOffClass 中时不会被调用,如果直接在 ViewController 中实现,则一切都按预期工作。

-(void)updateUserActivityState:(NSUserActivity *)userActivity
-(void)restoreUserActivityState:(NSUserActivity *)activity

所以我的问题是我对如何实现/子类 UIResponder 方法缺乏了解

@interface HandOffClass : UIResponder  <NSUserActivityDelegate> 

我的方法是正确的还是有更好的方法来解决这个问题,我猜我的 HandOffClass 不包含在响应者链中?

感谢您的任何帮助或指导。

4

1 回答 1

0

您可能希望将该对象插入响应者链中,这样您就走在了正确的轨道上。

尝试这样的事情:

id nextResponder = [self nextResponder];
[self setNextResponder: _myCoolHandOffClass];
[_myCoolHandOffClass setNextResponder: nextResponder];

记得删除它!

或者,使用这些“HandOffClasses”来包含逻辑 - 并简单地从您的 ViewController 类中调用它们。这样你的样板就少了一点(在响应者链中添加和删除),即使你什么都不做,你的事件也可能由 ViewController 处理。

于 2014-11-18T22:43:49.610 回答