chr*_*o16 1 cocoa objective-c paste nsstring nspasteboard
我想捕获粘贴到控件中的字符串,并在粘贴之前将一些自定义格式应用于字符串.
这怎么可能?
谢谢!
paste:
在视图/控件中覆盖(粘贴:是UIResponderStandardEditActions
非正式协议的一部分).最简单的,你这样做:
- (void)paste:(id)sender
{
UIPasteboard* pasteboard = [UIPasteboard generalPasteboard];
NSString* rawString = pasteboard.string;
NSString* formattedString = // do something fun with rawString here
pasteboard.string = formattedString;
[super paste:sender];
}
Run Code Online (Sandbox Code Playgroud)
这假设您不需要对字符串做一些非常奇特的事情(比如插入动画表情或其他东西),在这种情况下你不应该打电话,super
而是自己做插入(如果你这样做就UITextView
可以使用selectedRange
正确插入的属性).
编辑:要从NSPasteBoard
您应该使用–stringForType:
或其他几种数据访问方法之一获取数据.您可能必须验证字符串/数据以确保它可以粘贴.
你可能不应该打电话super
但是请使用
[self insertText:formattedString];
Run Code Online (Sandbox Code Playgroud)
如果您在NSTextView上执行此操作.如果你正在与另一个班级一起工作,你必须找出在这种情况下适当的东西.
归档时间: |
|
查看次数: |
1075 次 |
最近记录: |