如何检查剪贴板上是否有东西?
如果剪贴板上有内容,则执行某项操作,如果没有,则执行另一项操作(如示例代码所示)
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)
}
答案 0 :(得分:4)
您应该使用UIPasteboard类。
if let value = UIPasteboard.general.string {
// there is value in clipboard
} else {
// clipboard is empty
}
答案 1 :(得分:1)
从iOS 10开始,您应该使用UIPasteboard
等hasStrings
属性来检查粘贴板上是否存在特定数据类型:
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属性包含非空数组。