iOS - 检测用户何时复制到剪贴板 - [UIPasteboard generalPasteboard]

时间:2012-01-20 13:03:03

标签: iphone objective-c ios copy-paste uipasteboard

快速简单的问题

在使用带有一些文本的WebView时 - 用户可以从中选择一段文本 并按下我创建的UIButton - 运行以下操作:

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

我想在没有UIButton的情况下调用相同的函数,因此当用户执行“复制”操作时,它将激活上面的代码。 (我假设是听众)

适合此人的听众是什么?

2 个答案:

答案 0 :(得分:10)

使用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];

答案 1 :(得分:0)

如果有人对Xamarin / C#版本感兴趣:

NSNotificationCenter.DefaultCenter.AddObserver(UIPasteboard.ChangedNotification, 
            notification => { 
                // custom code here
            });