标签: pasteboard

iOS粘贴板奇怪的随机崩溃

由于使用粘贴板,我们的应用程序多次收到崩溃。在这种情况下,当我尝试使用系统笔记粘贴内容时,系统笔记也会被屏蔽。所以我写了一个程序尝试读取粘贴板,但是当我使用[UIPasteboard generalPasteboard]时它也会崩溃。

我确定这个严重的错误是苹果的错误,如果使用 UIPasteboard 类,在这种情况下启动时所有应用程序都会崩溃。当我重新启动手机时,就可以了。我已经向苹果报告了这个问题,但没有回复,非常失望。

Date/Time: 2018-12-19 11:37:49.4053 +0800
Launch Time: 2018-12-19 11:37:29.3603 +0800
OS Version: iPhone OS 12.1 (16B92)
Baseband Version: 3.11.00
Report Version: 104

Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d
Termination Description: SPRINGBOARD, scene-create watchdog transgression: com.xxxxx.xxxx exhausted real (wall clock) time allowance of 19.86 seconds | ProcessVisibility: Background | ProcessState: Running | WatchdogEvent: scene-create | WatchdogVisibility: Foreground | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): …
Run Code Online (Sandbox Code Playgroud)

xpc pasteboard objective-c watchdog ios

5
推荐指数
1
解决办法
1541
查看次数

复制到Snow Leopard或更高版本的粘贴板文件路径和URL

我想在剪贴板中复制文件路径,以便它们可以作为字符串在文本编辑器中复制,但我希望它们也可供Finder复制文件.

我编写了符合Snow Leopard准则的下面显示的代码(例如,在复制文件URL时使用writeObjects)

NSString* path1 = @"/Users/dave/trash/mas.sh";
NSString* path2 = @"/Users/dave/trash/books.xml";
NSURL* url1 = [NSURL fileURLWithPath:path1 isDirectory:NO];
NSURL* url2 = [NSURL fileURLWithPath:path2 isDirectory:NO];
NSArray* paths = [NSArray arrayWithObjects:path1, path2, nil];

NSString* pathPerLine = [paths componentsJoinedByString:@"\n"];
// Put strings on top otherwise paster app receives the url (only the first)
// Urls will be used by Finder for files operations (copy, move)
NSArray* urls = [NSArray arrayWithObjects:pathPerLine, url1, url2, nil];
NSPasteboard* pasteboard = [NSPasteboard generalPasteboard];
[pasteboard clearContents];
[pasteboard writeObjects:urls];
Run Code Online (Sandbox Code Playgroud)

但是在一些编辑器(如XCode)上也会粘贴网址,如下所示(Finder正确使用网址进行复制/移动)

/Users/dave/trash/mas.sh …
Run Code Online (Sandbox Code Playgroud)

cocoa pasteboard osx-snow-leopard

3
推荐指数
1
解决办法
1941
查看次数

iPhone有剪贴板API吗?

iPhone有剪贴板API吗?似乎可以调用API函数将文本设置为粘贴板,其他应用程序可以访问它,但有人可以验证这是正确的吗?

谢谢.

iphone api clipboard pasteboard

2
推荐指数
1
解决办法
4141
查看次数

将字符串数据从My Cocoa App拖到第三方Cocoa App

我想从我的tableview中拖出一行并将其放入Mac OS X 10.6中的任何其他NSTextField中,并删除一串文本.

拖放已经在我的应用程序中工作(在NSTableView和NSBrowser之间),但我没有成功将任何数据放在粘贴板上,除了源应用程序之外的应用程序可以接受.

这是我尝试过的代码,当我进入其他一些NSTextField时,我认为这样就足以让"hello"这个词被"粘贴"了:

-(BOOL) tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes     toPasteboard:(NSPasteboard *)pboard {

    [pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
    [pboard setString:@"hello" forType:NSStringPboardType];

return YES;
Run Code Online (Sandbox Code Playgroud)

}

// -

我从来没有得到光标,告诉我下降将被接受,它只是不起作用.

  • 我试过的事情:
    • 使用10.5版本的Pasteboard标识符NSStringPBoardType
    • 使用10.6版本,NSPasteboardTypeString.
    • 设置owner = nil,因为我没有懒惰地提供数据.
    • 使用键控归档器:[pboard setData:[NSKeyedArchiver archivedRootObject:@"Hello !!"]]

以上都没有奏效.我认为我的概念是正确的:"编码数据,告诉粘贴板你有什么,然后给它数据",但由于其他应用程序无法识别它,我怀疑我没有告诉粘贴板正确的数据类型.

我哪里错了?

谢谢,伍迪

clipboard cocoa drag-and-drop pasteboard

2
推荐指数
1
解决办法
351
查看次数

iOS将多个图像复制到粘贴板

我可以将一个图像复制到粘贴板,如下所示:

UIPasteboard *pasteboard;
pasteboard = [UIPasteboard generalPasteboard];
UIImage *image;
[pasteboard setImage:image];
Run Code Online (Sandbox Code Playgroud)

如何将两个或三个图像复制到粘贴板?

copy pasteboard image ios

2
推荐指数
1
解决办法
1976
查看次数

Swift 4:使用 NSPasteboard 将字符串复制到剪贴板的问题

我在 Swift 3 及更早版本中都使用了这一切,但是在 Swift 4 中,无论我使用什么变体,此代码都会将文本输出为 URL。如果我输入“这是我的示例文本”,粘贴剪贴板后的输出将是“This%20is%20my%20sample%20text”。我试过 KuTTypeFileURL 但这似乎也没有任何区别。我在这里缺少什么?我看过有关 Apple 如何更改 Pboards 和其他沙盒问题的帖子和讨论,但我似乎根本无法弄清楚这一点。

原始代码在 swift 3 及更早版本中有效

private func copyToClipBoard(textToCopy: String) {
    let pasteBoard = NSPasteboard.general()
    pasteBoard.clearContents()
    pasteBoard.setString(textToCopy, forType: NSStringPboardType)

}
Run Code Online (Sandbox Code Playgroud)

这给出了 'NSStringPboardType' 在 Swift 中不可用的错误:使用 'PasteboardType.string'

在网上搜索后,我遇到了这些描述相同问题的帖子,解决方法是使用 kuTTypeUrl 作为字符串

在这里找到 stackoverflow.com/questions/44537356/... 和这里 forums.developer.apple.com/thread/79144

当我以这种方式尝试它时,它只是在我只需要一个字符串时输出为一个 URL。

@IBOutlet weak var nameTextField: NSTextField!

@IBAction func nameCopy(_ sender: Any) {
    copyToClipBoard(textToCopy: nameTextField.stringValue)
}


let NSStringPboardType = NSPasteboard.PasteboardType(kUTTypeURL as String)

private func copyToClipBoard(textToCopy: String) {
    let pasteBoard = NSPasteboard.general
    pasteBoard.clearContents()
    pasteBoard.setString(textToCopy, forType: NSStringPboardType) …
Run Code Online (Sandbox Code Playgroud)

clipboard pasteboard nspasteboard swift

2
推荐指数
1
解决办法
4632
查看次数