如何检查剪贴板上是否有东西

时间:2018-01-06 18:14:47

标签: ios swift clipboard

如何检查剪贴板上是否有东西?

如果剪贴板上有内容,则执行某项操作,如果没有,则执行另一项操作(如示例代码所示)

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)
}

2 个答案:

答案 0 :(得分:4)

您应该使用UIPasteboard类。

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

答案 1 :(得分:1)

从iOS 10开始,您应该使用UIPasteboardhasStrings属性来检查粘贴板上是否存在特定数据类型:

var hasStrings: Bool
  

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

来自文档:

  

从iOS 10开始,UIPasteboard类提供了属性   直接检查a上是否存在特定数据类型   粘贴板,在检查粘贴板上的数据类型中描述。使用   这些属性,而不是尝试读取粘贴板数据   避免导致系统不必要地尝试在它之前获取数据   需要或数据可能不存在时。例如,你可以   使用新的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
  

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

var hasURLs: Bool
  

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