问题标签 [pasteboard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 使 OS X 粘贴板崩溃
我有一个应用程序通过模拟 CMD-C 复制命令并读取粘贴板来读取文本 - 不幸的是,这是实现我需要的唯一方法。有时,由于它正在开发中,有时我会做错事(我认为它与复制命令无关)并且应用程序崩溃。有时,这会对系统范围的粘贴板产生连锁反应——如果我尝试复制、剪切或粘贴,任何其他正在运行的应用程序都会崩溃。
有没有一种强大的方法来处理这个问题 - 我应该在退出之前对 NSPasteboard 做些什么?任何有关可能发生的事情的信息表示赞赏。
为了完整起见,这里是访问粘贴板的唯一代码片段:
从粘贴板中读取:
最初清除粘贴板(我只运行一次,在启动时):
PS我忘了提到这个复制命令在一个循环中运行,在一个不同的线程中——可能很重要。虽然我一直小心不要在没有先检查循环是否停止的情况下访问主线程上的粘贴板。
更新 - 关于我在做什么的几个问题......
- 你能发布崩溃报告吗
现在正在处理它 - 不幸的是,崩溃是不规则的。不过让我说清楚 - 这是一个我仍在开发的应用程序,有时我会引入一个错误。当这导致崩溃时,系统范围的粘贴板有时会变得混乱。看起来我的应用程序中的粘贴板访问并没有导致崩溃,而是在后台循环处于与 PB 交互的微妙阶段时退出。更新 - 重新提交崩溃报告 - 这对你们来说有多重要?我仍在开发中,但可以尝试在调试器中运行几次,直到出现问题。不幸的是,我现在修复了所有未解决的错误并且没有遇到任何崩溃。这向我强烈暗示问题不在于 PBoard 代码本身 - 我更多的是寻找一些保护措施,以便如果发生崩溃,它不会降低我的整个系统。所有这些重新启动都变得烦人。
- 你能详细说明为什么你需要模拟 Cmd-C 来做你需要的事情吗?
我正在从外部应用程序的聊天框中抓取文本。建立聊天框是为了禁止我使用辅助功能界面或任何其他方式。
- 为什么要在启动时清除剪贴板的内容?
我检查粘贴板文本中的新文本。这是确保我不处理从其他应用程序复制的文本的快速方法。
- 你为什么要在一个线程上运行代码?
循环不断发布事件以模拟用户输入,包括切换到聊天窗口和复制选定的文本。如果这是在主线程上完成的,我的应用程序 UI 将挂起。我使用 UI 来显示正在发生的事情的概述。
- 请显示在主线程上运行的代码并检查循环并访问粘贴板
后台线程使用 NSNotifications 将数据传递给主线程:
iphone - iphone sdk - 粘贴到当前文本位置的问题
我正在尝试将文本粘贴到光标当前所在的位置。我一直在尝试做它所说的: - http://dev.ragfield.com/2009/09/insert-text-at-current-cursor-location.html
主要问题是我不能只使用 textbox1.text (等),因为文本字段位于自定义单元格的中间。我只想在光标所在的位置添加一些文本(当我按下键盘上的自定义键时)。
-我只想将小数粘贴到文本框中...
我得到的错误是:
2010-05-15 22:37:20.797 PageControl[37962:207] * -[MyDetailController paste:]:无法识别的选择器发送到实例 0x1973d10 2010-05-15 22:37:20.797 PageControl[37962:207] *终止应用程序到期未捕获的异常 'NSInvalidArgumentException',原因:'*** -[MyDetailController paste:]:无法识别的选择器发送到实例 0x1973d10'
注意:我可以访问 textfield 标签(如果有帮助?)
我已经过了objective-c的初学者阶段,但仍然不是很好。我的代码目前在下面,在https://gist.github.com/d634329e5ddf52945989
谢谢大家。
MyDetailController.h
我的细节控制器.m
objective-c - 在拖放操作中传递对象指针
是否可以在拖放操作中将指针传递给对象?
这是场景...
我有一个自定义对象的“NSArray”。为了争论,我们会说这是一个人对象的列表。
该列表NSTableView
通过一个NSArrayController
. 这NSTableView
是一个拖动源,我有一个NSView
作为拖动目的地。
实现拖放时,我可以在拖动过程中轻松地从NSArrayController
as中获取当前选定人员的姓名,NSString
并将其传递给NSView
.
但是,我希望能够将指针传递给 person 对象,以便接收者可以访问整个对象。
问题似乎是拖动操作创建了一个新的人员对象实例,并且尽管在人员模型中实现了所需的方法,但并没有对选定的人员对象进行引用。结果,我在目的地得到了一个人对象,它只是没有填充来自对象的数据。
理想情况下,我想要对象指针,因为 NSView 将使用对象引用,以便对对象本身的任何更新都反映在NSView
和NSTableView
(以及使用对象的其他任何地方)中。
是否甚至可以在拖放操作中使用对象引用,或者我是否需要传递一些自定义引用,即 person 对象的 iVar,然后在它到达目的地后进行查找?(考虑到引用 Obj-c 的对象有多少,这对我来说似乎有点过时)。
我知道目标可以接受来自应用程序外部的拖动操作,但是将操作指定为本地操作会解决这个问题,不是吗?
我已经检查了苹果文档,但似乎仍然无法找到答案。
非常感谢任何和所有帮助。
cocoa - 将字符串数据从 My Cocoa App 拖到第三方 Cocoa App
我想从我的 tableview 中拖动一行并将其放入 Mac OS X 10.6 中的任何其他 NSTextField 中,并删除一串文本。
拖放已经在我的应用程序中工作(在 NSTableView 和 NSBrowser 之间),但是我没有成功将任何数据放在可以被源应用程序以外的应用程序接受的粘贴板上。
这是我尝试过的代码,我认为当我放入其他一些 NSTextField 时,它足以让“你好”这个词被“粘贴”:
}
//--
我从来没有得到显示我丢弃将被接受的光标,它只是不起作用。
- 我尝试过的事情:
- 使用 10.5 版本的粘贴板标识符,NSStringPBoardType
- 使用 10.6 版本,NSPasteboardTypeString。
- 设置 owner = nil,因为我没有懒惰地提供数据。
- 使用键控归档器:[pboard setData:[NSKeyedArchiver archivedRootObject:@"Hello!!"]]
以上都没有奏效。我认为我的概念是正确的:“编码数据,告诉粘贴板你有什么,然后给它数据”,但由于其他应用程序无法识别它,我怀疑我没有告诉粘贴板正确的数据类型.
我哪里错了?
谢谢,伍迪
cocoa - 粘贴板管理器参考
嗨,我有一个旧代码,它使用一个 scrapref 并使用 GetScrapbyname(kscrapclipboardscrap,kscrapgetnamedscrap,&scrapref);
比使用 getscrapflavourcount 获取风味计数,然后使用 getscrapinfoflavourlist 获取列表
由于上述 API 已被弃用,我正在尝试使用粘贴板管理器替换它们
但是要替换,getscrapflavourcount 替换是使用 itemid 的 PasteboardCopyItemFlavors,这在旧代码中不是这样???在这里做什么..
menu - 如何使用 NSPasteboard 在应用程序之间传输数据(使用上下文菜单)
“NSPasteboard 对象在粘贴板服务器之间传输数据。服务器由所有正在运行的应用程序共享。它包含用户剪切或复制的数据,以及一个应用程序想要传输到另一个应用程序的其他数据。NSPasteboard 对象是一个应用程序到服务器和所有粘贴板操作的唯一接口。
NSPasteboard 对象还用于在每个应用程序的服务菜单中列出的应用程序和服务提供者之间传输数据。拖动粘贴板 (NSDragPboard) 用于传输用户拖动的数据。”
我在苹果的 NSPasteboard 文档中找到了这个。到目前为止,我只知道如何使用粘贴板进行简单的复制粘贴。我感兴趣的是如何使用上下文菜单而不是拖放来通过粘贴板服务器在应用程序之间传输用于非复制粘贴目的的数据。例如,如果用户右键单击一个单词并单击上下文菜单中的“在字典中查找”,则该单词随后(可能)通过粘贴板发送到 Dictionary 应用程序。
有人可以演示一个概念验证应用程序,展示如何访问粘贴板服务器中存储用户使用“在字典中查找”的单词的数据吗?
iphone - iOS - UIPasteboard 在应用程序之外不起作用
我认为这更像是一个 SDK 缺陷,而不是我的应用程序,但最近我一直在尝试使用 UIPasteboard 从我的应用程序中复制字符串,当我在应用程序内部时,它可以很好地粘贴到某个地方。
当我通过按主页按钮或类似按钮跳转到另一个应用程序时,我根本无法粘贴复制的内容。
在这种情况下,它将打印“blah”,并且每当我快速触摸文本字段时,它都会显示粘贴选项。但如果我去 Safari、Notes 或 Mail,它不会显示该选项。
此外,如果我从邮件中复制某些内容并转到我的应用程序,我也不会看到粘贴选项......
ios - iOS将多个图像复制到粘贴板
我可以像这样将一张图像复制到粘贴板:
如何将两个或三个图像复制到粘贴板?
cocoa - 复制到 Snow Leopard 或更高版本上的粘贴板文件路径和 url
我想在剪贴板中复制文件路径,以便可以在文本编辑器中将它们作为字符串复制,但我希望它们也可用于 Finder 来复制文件。
我已经编写了符合 Snow Leopard 准则的代码(例如,在复制文件 url 时使用 writeObjects)
但在某些编辑器(如 XCode)上,也会粘贴 url,如下所示(Finder 正确使用 url 来复制/移动)
如何使用 10.6 兼容代码仅粘贴没有文件 URL 的文件路径?
NSFilenamesPboardType的使用似乎不鼓励
NSFilenamesPboardType 指定一个或多个文件名的 NSString 对象数组。在 Mac OS X v10.6 及更高版本上,使用 writeObjects: 将文件 URL 写入粘贴板。在 Mac OS X v10.0 及更高版本中可用。在 NSPasteboard.h 中声明。
pasteboard - 在 Xcode 中将文本结果发送到剪贴板(找到解决方案)
这是在最新的 Xcode 中。
我有 4 个数组,它们通过 OK 按钮在屏幕上生成结果。我想添加一个将结果复制到剪贴板的函数。那有意义吗?
虽然我不确定这是如何完成的,但我正在大量研究它,因为我对编码有点陌生。
从我所见,粘贴板似乎是要走的路。我在正确的球场吗?
这是我的代码示例...
这是我想要实现的代码(我认为):
而且......如果我有正确的用法,我不知道把它放在哪里......
先感谢您!!!
编辑-
我想通了...我只需要添加:
在提供我的结果的代码行下方。我知道这听起来很弱,但是......我认为能够自己解决一次真是太棒了!