iOS - определить, когда пользователь копирует в буфер обмена - [UIPasteboard generalPasteboard] - PullRequest
8 голосов
/ 20 января 2012

быстрый простой вопрос

при использовании WebView с некоторым текстом в нем - пользователь может выбрать фрагмент текста из него и нажмите кнопку UIB, которую я создал - запустив следующее действие:

-(IBAction)copyToClip
{
    NSString *copyClip = [UIPasteboard generalPasteboard].string;
    NSLog(@"Clip = %@",copyClip);
    // (works fine)
}

Я хотел бы вызвать ту же функцию без UIButton, поэтому, когда пользователь выполнил действие «копировать», он активирует приведенный выше код. (Я предполагаю, что слушатель)

что будет подходящим слушателем для этого?

1 Ответ

10 голосов
/ 20 января 2012

Используйте NSNotificationCenter и зарегистрируйтесь для UIPasteboardChangedNotification: http://developer.apple.com/library/IOs/documentation/UIKit/Reference/UIPasteboard_Class/Reference.html#//apple_ref/c/data/UIPasteboardChangedNotification

[[NSNotificationCenter defaultCenter] addObserver:object selector:@selector(copyToClip) name:UIPasteboardChangedNotification object:nil];
...