我想鉤在UIPasteboard中的Propery字符串,當它發生變化時,我會做一些事情。中定義的屬性爲:如何在UITextView中掛鉤UIPasteboard?
@property(nullable,nonatomic,copy) NSString *string
我用的方法調酒更換string
到stringSwizzle
,setString
到setStringSwizzle
喜歡如下:
- (void) setStringSwizzle:(NSString *) string {
NSLog(@"setStringSwizzle: %@", string);
[self setStringSwizzle:string];
}
- (NSString *) stringSwizzle {
NSLog(@"stringSwizzle - %@", [self stringSwizzle]);
return [self stringSwizzle];
}
當我使用代碼如下,它會進入setStringSwizzle和輸出我的日誌:
UIPasteboard *uiPasteboard = [UIPasteboard generalPasteboard];
uiPasteboard.string = @"test1";
[uiPasteboard setString:@"test2"];
[uiPasteboard setValue:@"test3" forKey:@"string"];
但是,當我在UITextView中執行復制操作時,它不會輸出任何setStringSwizzle
日誌(但方法stringSwizzle
將輸出日誌)。
所以,有什麼辦法來實現我的目標
-------------
加: 我使用KVO來觀測的谷string
UIPasteboard,當我在UITextview中複製動作時,觀察者不會迴應。
當做的UITextView複製動作,它會使用[UIPasetboard使用setData:forPasteboardType:] – waitianlou