如何检查剪贴板上是否有内容?

3

如何检查剪贴板上是否有内容?

如果剪贴板上有内容,则执行某个操作,否则执行另一个操作(示例代码中已说明)

if (if in the clipboard, that is, then open the VC) {
        let modalViewController = self.storyboard?.instantiateViewController(withIdentifier: "Clipboard") as? ClipboardViewController
        modalViewController?.modalPresentationStyle = .overCurrentContext
        self.present(modalViewController!, animated: true, completion: nil)
} else (if the clipboard is empty then) {
        let alert = UIAlertController(title: "Clipboard is Empty", message: "It's recommended you bring your towel before continuing.", preferredStyle: .alert)

        alert.addAction(UIAlertAction(title: "Yes", style: .default, handler: nil))
        alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))

        self.present(alert, animated: true)
}

4
你看过 UIPasteboard 的文档吗? - undefined
2个回答

6

自iOS 10以来,您应该使用UIPasteboard属性,例如hasStrings来检查粘贴板上是否存在特定的数据类型:

var hasStrings: Bool

返回一个布尔值,表示strings属性是否包含非空数组。
从文档中可以看到:
在iOS 10中,UIPasteboard类提供了直接检查特定数据类型是否存在于剪贴板上的属性,详见“检查剪贴板上的数据类型”。使用这些属性时应避免尝试读取剪贴板数据,以避免系统不必要地尝试在需要之前或数据可能不存在时获取数据。例如,您可以使用新的hasStrings属性来确定是否展示用户界面中的字符串数据粘贴选项,使用以下代码:
if UIPasteboard.general.hasStrings {
    // Enable string-related control...
    if let string = UIPasteboard.general.string {
        // use the string here
    }
}

还有一些属性用于检查数据类型;

var hasColors: Bool

返回一个布尔值,指示colors属性是否包含非空数组。


var hasImages: Bool

返回一个布尔值,指示图像属性是否包含一个非空数组。
var hasURLs: Bool

返回一个布尔值,指示urls属性是否包含非空数组。

5

你应该使用UIPasteboard类。

if let value = UIPasteboard.general.string {
    // there is value in clipboard
} else {
    // clipboard is empty
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接