0

有没有办法在不返回空字符串的 Mono 中获取 Mac 上的剪贴板?这是使用最新的非测试版单声道。

Clipboard.SetText(String) 工作正常,我可以粘贴到其他程序。

Clipboard.GetText(TextDataFormat.UnicodeText)
Clipboard.GetText(TextDataFormat.Text)
Clipboard.GetText(TextDataFormat.Rtf)

所有返回 "" 即使 Clipboard.ContainsText(TextDataFormat.UnicodeText) 返回 true。

编辑:

解决方案最终是在 mac 上使用 NSPasteboard。https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSPasteboard_Class/Reference/Reference.html

4

2 回答 2

0

可能单声道将 TextDataFormat.UnicodeText 解释为 utf-16,但“其他应用程序”将剪贴板上的文本作为 utf-8 放置。

以下是一个补丁,如果我没记错的话,它修复了与此类似的问题。

剪贴板补丁

您将需要构建单声道并应用补丁来尝试这一点。

于 2013-06-18T21:20:08.547 回答
0

解决方案最终是在 mac 上使用 NSPasteboard。https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSPasteboard_Class/Reference/Reference.html

我永远无法让剪贴板返回任何东西。Mono 在 NSPasteboard 周围有包装器,因此最终以这种方式非常容易。

于 2013-07-16T22:08:31.887 回答