QML 复制文本到系统剪贴板的代码
Item {
TextEdit {
id: cliphelper
visible: false
}
Button{
onClicked: {
cliphelper.text = "testclip"
cliphelper.selectAll()
cliphelper.copy()
}
}
当我运行它然后传递到一封电子邮件时,我得到了这个。
氐漯甑渌攴
此剪辑/粘贴代码在 Windows 和 OSX 中运行良好。在 iOS 上很奇怪
问题: 这里是否发生了一些编码转换? 从 "testclip"到 "挽救精湛最攀"?
注:QT 5.7
另外,当我直接粘贴回我的应用程序时,效果很好,但是当我再次从另一个应用程序中剪辑这个保存然后粘贴时,它不会转换它。
就好像在 ios 剪贴板和我的应用程序之间正在进行某种 ssl?
谢谢
最佳答案
我在 iOS 上使用 Qt 5.7.1 的 QtQuick 应用程序中遇到了类似的问题。
Qt 5.7.1 中的 QClipboard 实现似乎有一个错误。 我可以使用以下代码直接将文本设置到 iOS 粘贴板来进行复制/粘贴。
#include "ioswrapper.h"
#import <UIKit/UIPasteboard.h>
ioswrapper::ioswrapper(QObject *parent):QObject(parent)
{
}
void ioswrapper::setPasteBoardString(const QString &paste)
{
UIPasteboard *pb = [UIPasteboard generalPasteboard];
if (pb) {
const char *str = paste.toUtf8().data();
NSString *text = [NSString stringWithCString:(const char *)str
encoding:(NSStringEncoding)NSUTF8StringEncoding];
if (text)
pb.string = text;
}
}
关于c++ - 如何在 iOS 上的 QT/QML 中使用剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46127567/