2013-06-18 2 views
0

Есть ли способ получить буфер обмена на Mac в Mono, который не возвращает пустую строку? Это использование последней версии бета-версии моно.Clipboard.GetText() всегда возвращает пустую строку в Mono на Mac

Clipboard.SetText (String) отлично работает, и я могу вставить в другие программы.

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

Все возвращение "" даже если Clipboard.ContainsText (TextDataFormat.UnicodeText) возвращает истину.

EDIT:

Решение в конечном итоге в том, чтобы использовать NSPasteboard на макинтош. https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSPasteboard_Class/Reference/Reference.html

ответ

0

Решение оказалось для использования NSPasteboard на Mac. https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSPasteboard_Class/Reference/Reference.html

Я никогда не мог получить буфер обмена, чтобы что-то вернуть. У Mono есть обертки вокруг NSPasteboard, поэтому в итоге это стало довольно легко.

+0

Я столкнулся с той же проблемой, не могли бы вы использовать код, который вы используете? Я не могу понять, что обертки для NSPasteboard – shmuelie

0

Возможно, mono интерпретирует TextDataFormat.UnicodeText как средство utf-16, но «другое приложение» помещает текст в буфер обмена как utf-8.

Ниже приведен патч, который, если я правильно помню, исправил проблему, подобную этому.

clipboard patch

Вам нужно будет построить моно от и применить патч, чтобы попробовать это.

+0

Хм. Я нашел этот патч вчера, но моя проблема, похоже, заключается в том, что, хотя у меня есть только обычный текст (ascii) в моем буфере обмена, Rtf говорит, что у меня есть текст RTF в буфере обмена, который у меня нет. И все 3 возвращают пустые строки независимо. Я попробую сделать MaC#ifdef, который не проверяет Rtf или Plaintext, и просто просматривает Clipboard.GetText (TextDataFormat.UnicodeText) с этим патчем и публикует результаты здесь. – shane

Смежные вопросы