sdk - 在应用程序加载中,iOS SDK获取剪贴板文本

  显示原文与译文双语对照的内容
0 0

我想在应用程序启动时将文本复制到剪贴板。

我可以使用以下文本从剪贴板获取可用文本。 但是我需要在不同的viewcontroller中使用这个值。 如何将这个值传递到 viewcontroller?


- (void)applicationDidBecomeActive:(UIApplication *)application {

 NSLog([UIPasteboard generalPasteboard].string);

}

时间: 原作者:

0 0

在 App Delegate 激活时,在上声明并实现一个方法:


@inferface ViewController: UIViewController {
/* etc. */
}

- (void)handlePasteboardString:(NSString *)s;

@end

在你的App Delegate 中:


- (void)applicationDidBecomeActive:(UIApplication *)a
{
 [self.mainViewController handlePasteboardString:[UIPasteboard generalPasteboard].string];
}

原作者:
0 0

更好的处理方法是为UIApplicationDidBecomeActiveNotification事件添加一个观察者( 在视图控制器中) 。 这样就避免了 App Delegate 和视图控制器之间不必要的耦合。


[[NSNotificationCenter defaultCenter] addObserver:self
 selector:@selector(getClipboardString:)
 name:UIApplicationDidBecomeActiveNotification object:nil];

编辑:删除视图控制器时,不要忘记删除观察者:


[[NSNotificationCenter defaultCenter] removeObserver:self];

...