代码之家  ›  专栏  ›  技术社区  ›  anas.p

如何在Swift的UserDefaults中保存默认打印机?[副本]

  •  5
  • anas.p  · 技术社区  · 7 年前

    这是我的应用程序的工作流: 用户可以从应用程序的设置页面选择默认打印机,并将使用此默认打印机每次直接打印 没有任何打印预览对话框 .

    我们可以使用 UIPrinterPickerController :

    let printerPicker = UIPrinterPickerController(initiallySelectedPrinter: nil)
    printerPicker.present(from: CGRect(x: 0, y: 0, width: 600, height: 500), in: self, animated: true) { (printerPicker, userDidSelect, error) in
        if userDidSelect {
            //Here get the selected UIPrinter
            let defaultPrinter = printerPicker.selectedPrinter
        }
    }
    

    在获得 UIPrinter ,我们无法直接保存 UIPrinter打印机 对象设置为UserDefault,这不是UserDefault支持类型。

    是否有其他保存选项 UIPrinter打印机 以用户默认值或任何其他方式保存默认打印机。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Arnab    7 年前

    可以通过以下方式存储自定义对象 NSKeyedArchiver . 为了使其可编码,他们必须实现NSCoding协议。

    但你不能存储 UIPrinter 中的实例 NSUserDefaults . 经过研究我发现 this link . 上面写着:

    您不能存储 UIPrinter打印机 中的实例 NSUserDefaults . 你怎么了 可以做的是保存打印机的URL,然后在应用程序再次启动时 你需要 UIPrinter打印机 ,从中读取URL NSUserDefaults 和 使用 UIPrinter printerWithURL: .