Ste*_*Hsu 12 cocoa copy-paste nstextview
当我将文本粘贴到NSTextView时,我希望我只能粘贴纯文本.应删除所有富文本格式,包括:字体,颜色,链接和段落样式.粘贴的所有文本都应使用文本视图的默认字体和样式显示.NSTextView默认接受富文本,如何禁用它?
NSTextView使用以下方法定义自定义类:
- (NSArray *)readablePasteboardTypes {
return [NSArray arrayWithObjects:NSStringPboardType,
nil];
}
Run Code Online (Sandbox Code Playgroud)
注意:从Mac OS X开始typedef,粘贴板类型的新内容NSPasteboardTypeString代替NSStringPBoardType:
- (NSArray *)readablePasteboardTypes {
return [NSArray arrayWithObjects:NSPasteboardTypeString,
nil];
}
Run Code Online (Sandbox Code Playgroud)
在您的NSTextView:中覆盖此方法:
- (NSString *)preferredPasteboardTypeFromArray:(NSArray *)availableTypes restrictedToTypesFromArray:(NSArray *)allowedTypes {
if ([availableTypes containsObject:NSPasteboardTypeString]) {
return NSPasteboardTypeString;
}
return [super preferredPasteboardTypeFromArray:availableTypes restrictedToTypesFromArray:allowedTypes];
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这既适用于粘贴,也适用于拖放.