iOS SDK在应用程序加载时获取剪贴板文本

sle*_*rfx 8 sdk uiviewcontroller uipasteboard ios

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

我可以使用以下文本从剪贴板中获取可用文本.但是我需要在另一个viewcontroller中使用这个值.如何将此值传递给我的viewcontroller?

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

    NSLog([UIPasteboard generalPasteboard].string);

}
Run Code Online (Sandbox Code Playgroud)

Arv*_*son 10

更好的处理方法是在UIApplicationDidBecomeActiveNotification事件中添加一个观察者(在视图控制器中).这样就可以避免应用程序委托和视图控制器之间不必要的耦合.

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(getClipboardString:)
                                             name:UIApplicationDidBecomeActiveNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

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

[[NSNotificationCenter defaultCenter] removeObserver:self];
Run Code Online (Sandbox Code Playgroud)


小智 9

在您的VC上声明并实现一个方法,您在活动时从应用程序委托调用该方法:

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

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

@end
Run Code Online (Sandbox Code Playgroud)

在你的app委托中:

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