【发布时间】:2021-02-04 01:55:20
【问题描述】:
我有以下代码用于抓取用户从应用程序外部复制到剪贴板的文本,以便他们可以将其粘贴到应用程序中:
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
if ([pasteboard hasStrings])
{
NSString *text = pasteboard.string;
}
这一直很好,直到iOS14 我注意到我一直在崩溃,因为pasteboard.string 是nil,尽管hasStrings 是真的。
我查看了文档,发现确实有可能pasteboard.string 是nil:
此属性中存储的值是一个 NSString 对象。这 相关的表示类型数组是 UIPasteboardTypeListString,其中包括类型 kUTTypeUTF8PlainText。 设置此属性将替换粘贴板中的所有当前项目 与新项目。如果第一项没有指定的值 类型,返回 nil。
我的意思是剪贴板中存在某种不是kUTTypeUTF8PlainText 的字符串,这就是为什么pasteboard.string 是nil,但这是正确的解释吗?
我只是对这里到底发生了什么感到困惑,如果我遇到pasteboard.string 是nil 的情况,我不确定要告诉我的用户什么?
【问题讨论】:
标签: ios objective-c ios14 uipasteboard