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

有没有办法让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

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

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

剪贴板补丁

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

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

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