快速简单的问题
使用带有一些文本的 WebView 时 - 用户可以从中选择文本片段 并按下我创建的 UIButton - 运行以下操作:
-(IBAction)copyToClip
{
NSString *copyClip = [UIPasteboard generalPasteboard].string;
NSLog(@"Clip = %@",copyClip);
// (works fine)
}
我想在没有 UIButton 的情况下调用相同的函数,因此当用户执行“复制”操作时,它将激活上述代码。 (我假设是一个听众)
什么是合适的监听器?
使用 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];
如果有人对 Xamarin/C# 版本感兴趣:
NSNotificationCenter.DefaultCenter.AddObserver(UIPasteboard.ChangedNotification,
notification => {
// custom code here
});
斯威夫特5
UIPasteboard.changedNotification
NotificationCenter.default.addObserver(self, selector: #selector(handleCopy), name: UIPasteboard.changedNotification, object: nil)
@objc func handleCopy(sender: NSNotification) {
// Handle new pasteboard
print("pasteboard changed: \(UIPasteboard.general.items.first)")
}
不要忘记将
@objc
添加到您的处理程序中,以便该方法对 Objective-C 选择器可见。