Clipboard.GetText()始终在Mac上的Mono中返回空字符串

时间:2013-06-18 21:00:58

标签: c# mono monomac

有没有办法让Mono中的Mac上的剪贴板不返回空字符串?这是使用最新的NON-beta版单声道。

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

2 个答案:

答案 0 :(得分:0)

可能是mono将TextDataFormat.UnicodeText解释为utf-16,但“其他应用程序”将文本放在剪贴板上,格式为utf-8。

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

clipboard patch

你需要构建单声道并应用补丁来试试这个。

答案 1 :(得分:0)

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

我无法让剪贴板返回任何内容。 Mono在NSPasteboard周围有包装,因此最终变得非常简单。