Eci*_*ana 3 cocoa objective-c nstextview
我有一个NSTextView,用户可以将纯文本粘贴到其中.
当用户在粘贴板中有"foo"时,我希望粘贴"bar".换句话说,用户进入网络浏览器,选择"foo",cmd + c,切换到我的NSTextView,cmd + v,并在插入点出现"bar".
拜托,有谁知道如何处理这个问题?
编辑:是否有可能以某种方式使用readSelectionFromPasteboard:type:
此?我只是不知道在我的被覆盖的textview的方法体中放什么..?
试试这个.对文本视图进行子类化,并覆盖粘贴:这样:
@implementation RDTextView
-(void)paste:(id)sender {
NSPasteboard *pb = [NSPasteboard generalPasteboard];
NSString *pbItem = [pb readObjectsForClasses: @[[NSString class],[NSAttributedString class]] options:nil].lastObject;
if ([pbItem isKindOfClass:[NSAttributedString class]])
pbItem = [(NSAttributedString *)pbItem string];
if ([pbItem isEqualToString:@"foo"]) {
[self insertText:@"bar"];
}else{
[super paste:sender];
}
}
@end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
765 次 |
最近记录: |