是否可以通过编程方式从键盘应用程序或iMessage应用程序中截取屏幕截图?如果是这样,怎么样?
编辑:澄清一下,我想从键盘/ iMessage应用程序中截取整个屏幕(即当前打开的应用程序)的屏幕截图。
答案 0 :(得分:5)
由于此操作会对使用第三方键盘或iMessage应用程序的客户的隐私造成毁灭性打击,因此无法以这种方式收集个人数据的屏幕截图,原因很明显。
该问题明确要求采用一种方法来执行针对App Store Review Guidelines, Section 5.1.1 Data Collection and Storage的潜在欺诈行为:
(iii)使用其应用程序偷偷发现的开发人员 密码或其他私人数据将从开发人员中删除 程序
此问题已被相应标记。
答案 1 :(得分:-1)
使用此代码使用UIToolBar
截取屏幕截图extension UIViewController: UITextFieldDelegate{
func addToolBar(textField: UITextField){
var toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.Default
toolBar.translucent = true
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
var screenshotButton = UIBarButtonItem(title: "Screenshot", style: UIBarButtonItemStyle.Done, target: self, action: "donePressed")
var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelPressed")
var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true
toolBar.sizeToFit()
textField.delegate = self
textField.inputAccessoryView = toolBar
}
func screenshotButton(){
func captureScreen() -> UIImage? {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, UIScreen.main.scale)
view.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
func cancelPressed(){
view.endEditing(true) // or do something
}
}
虽然我仍然需要在我的所有文本字段中调用以下代码。
override func viewDidLoad() {
super.viewDidLoad()
addToolBar(addressField)
}