有没有一种简单的方法让UITableViewCell的子类在选择保持一段时间之后显示"地址簿"应用程序中的"复制"UIMenuController弹出窗口(参见屏幕截图)?
我无法让这个方法返回YES:
- (BOOL) writeToPasteBoard:(NSString *)stringToWrite
{
return [pasteBoard setString:stringToWrite forType:NSStringPboardType];
}
Run Code Online (Sandbox Code Playgroud)
我已经验证stringToWrite正确通过,该方法总是返回NO.
有任何想法吗?
这是课程的其余部分:
@interface ClipBoard : NSObject {
NSPasteboard *pasteBoard;
}
- (BOOL) writeToPasteBoard:(NSString *)stringToWrite;
- (NSString *) readFromPasteBoard;
@end
@implementation ClipBoard
- (id) init
{
[super init];
pasteBoard = [NSPasteboard generalPasteboard];
return self;
}
- (BOOL) writeToPasteBoard:(NSString *)stringToWrite
{
return [pasteBoard setString:stringToWrite forType:NSStringPboardType];
}
- (NSString *) readFromPasteBoard
{
return [pasteBoard stringForType:NSStringPboardType];
}
Run Code Online (Sandbox Code Playgroud)
@结束
根据man页面pbpaste,
-Prefer {txt | rtf | ps}
tells pbpaste what type of data to look for in the pasteboard
first. As stated above, pbpaste normally looks first for plain
text data; however, by specifying -Prefer ps you can tell
pbpaste to look first for Encapsulated PostScript. If you spec-
ify -Prefer rtf, pbpaste looks first for Rich Text format. In
any case, pbpaste looks for the other formats if the preferred
one is not found. The …Run Code Online (Sandbox Code Playgroud) 我必须发送一份关于将一些剪贴板内容粘贴到一个富Web编辑器的报告,我需要一种方法来将剪贴板内容转储/恢复到(可能)HTML.
我怎样才能做到这一点?
似乎pbcopy/pbpaste总是给我文本,即使我使用pbpaste -P rtf或pbpaste -P HTML
使用OS X上的框架,我可以使用以下内容将PNG复制到粘贴板(在C中 - 显然我可以将NSPasteboard与Cocoa一起使用):
#include <ApplicationServices/ApplicationServices.h>
int copyThatThing(void)
{
PasteboardRef clipboard;
if (PasteboardCreate(kPasteboardClipboard, &clipboard) != noErr) {
return -1;
}
if (PasteboardClear(clipboard) != noErr) {
CFRelease(clipboard);
return -1;
}
size_t len;
char *pngbuf = createMyPNGBuffer(&len); /* Defined somewhere else */
if (pngbuf == NULL) {
CFRelease(clipboard);
return -1;
}
CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, pngbuf,
len, kCFAllocatorNull);
if (data == NULL) {
CFRelease(clipboard);
free(pngbuf);
return -1;
}
OSStatus err;
err = PasteboardPutItemFlavor(clipboard, NULL, kUTTypePNG, data, 0);
CFRelease(clipboard);
CFRelease(data);
free(pngbuf);
return 0; …Run Code Online (Sandbox Code Playgroud) Cocoa的新手,我正在试图弄清楚如何将NSAttributedString复制到粘贴板.我查看了文档并且不确定我是否应该使用NSPasteboardItem.
这是我必须复制常规NSString:
NSPasteboard *pb = [NSPasteboard generalPasteboard];
NSArray *types = [NSArray arrayWithObjects:NSStringPboardType, nil];
[pb declareTypes:types owner:self];
[pb setString:@"asdfasdf" forType:NSStringPboardType];
Run Code Online (Sandbox Code Playgroud)
如何设置NSAttributedString?
谢谢
我认为这比我的应用程序更像是一个SDK漏洞,但最近我一直在尝试使用UIPasteboard从我的应用程序中复制字符串,当我在应用程序内部时,它可以很好地粘贴到某个地方.
当我通过按主页按钮或类似的东西跳转到另一个应用程序时,我根本没有选择粘贴复制的内容.
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString: @"blah" ];
NSLog(@"%@", pasteboard.string);
Run Code Online (Sandbox Code Playgroud)
在这种情况下它将打印"blah",每当我快速触摸文本字段时,它将显示粘贴选项.但是,如果我去Safari,Notes或Mail它没有向我显示该选项.
此外,如果我从邮件中复制一些东西并转到我的应用程序,我也不会看到粘贴选项...
我正在写一个iOS应用程序,我只是想确保我称之为适当的东西.我习惯了剪贴板,但显然Apple称它为iOS上的粘贴板.谷歌搜索没有任何具体的内容.
我看到该课程已被调用,UIPasteboard但我只想验证文献/最终用户通信是否也使用该术语.
有没有办法对源代码应用程序明确声明它将提供的NSPasteboard进行过滤?
我正在尝试在我的应用程序中序列化粘贴板数据.当另一个应用程序将RTF文件放在粘贴板上然后我要求可用类型时,我得到11种不同风格的RTF,从原始RTF到普通字符串到dyn.*值.
将所有数据保存到磁盘上的plist或原始数据通常不是问题,因为它非常小,但是当在粘贴板上放置任何相当大的图像时,产生的输出可能比源大几十倍数据(通过过滤可以获得多种TIFF和PICT数据).
我想尽可能地保存原始应用程序可用的内容.
约翰,你比我自己或与我一起工作的绅士更加敏锐,因为恐龙在地球上漫游,他一直在做Mac编程.我们都没有注意到你突出显示的文字......我不知道为什么.显然,在这个问题上开始的时间过长了.
虽然我接受了你的答案作为正确的答案,但它并没有完全回答我原来的问题.我一直在寻找一个办法来识别的口味,可以简单地将它们放置在粘贴板上成为其他口味和了解这些类型的最初是由供应商提供.走路时,类型列表将为我提供提供它们的应用程序的首选顺序,它不会告诉我哪些我可以安全地忽略,因为它们将在我稍后重新填充粘贴板时重新创建.
我得出结论,没有"好"的方法来做到这一点. [NSPasteboard declaredTypesFromOwner]会很棒,但它不存在.
我想在两个iPhone应用程序之间共享文本数据.我怎样才能将粘贴板用于此目的.任何人都可以帮我提供示例代码.提前致谢.建议我是否有比粘贴板更好的方法来完成我的任务.
pasteboard ×10
iphone ×4
cocoa ×3
ios ×3
clipboard ×2
macos ×2
objective-c ×2
applescript ×1
c ×1
copy-paste ×1
filtering ×1
linux ×1
rtf ×1
share ×1
uipasteboard ×1
uitableview ×1
x11 ×1
xcode ×1