8

アプリケーションの起動時にテキストをクリップボードにコピーしたいのですが。

次のテキストを使用して、クリップボードから使用可能なテキストを取得できます。ただし、この値を別のビューコントローラで使用する必要があります。この値をビューコントローラに渡すにはどうすればよいですか?

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

    NSLog([UIPasteboard generalPasteboard].string);

}
4

3 に答える 3

10

これを処理するはるかに優れた方法は、UIApplicationDidBecomeActiveNotificationイベントのオブザーバーを(ビューコントローラーに)追加することです。これにより、アプリデリゲートとビューコントローラー間の不要な結合を回避できます。

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

編集:ビューコントローラが削除されたときにオブザーバーを削除することを忘れないでください:

[[NSNotificationCenter defaultCenter] removeObserver:self];
于 2013-07-28T19:45:39.983 に答える
9

アクティブになったときにアプリデリゲートから呼び出すメソッドをVCに宣言して実装します。

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

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

@end

アプリデリゲート:

- (void)applicationDidBecomeActive:(UIApplication *)a
{
    [self.mainViewController handlePasteboardString:[UIPasteboard generalPasteboard].string];
}
于 2012-08-04T13:14:57.623 に答える
0

クリップボードアイテムが必要な時期はわかりませんが、特定のView Controllerが表示されているとき、または表示されようとしているときは、viewDidLoadそのViewControllerのforで実行できます。

于 2016-05-09T19:32:38.767 に答える