2016-08-15 1 views
6

Je voudrais afficher une liste avec toutes les imprimantes accessibles par l'appareil via AirPrint. Je l'ai obtenu en utilisant le UIPrinterPickerController.List accessible Imprimantes AirPrint

Y at-il de toute façon l'affichage de ce PickerController d'une manière personnalisée, par exemple, l'alimentation des données dans un UITableView?

Notez également que je prévois d'utiliser cette application sur un iPad qui ne supporte que le UIPrinterPickerController.presentFromRect(CGRect)

Voici à quoi il ressemble en ce moment. Au lieu de ce pop-up, il devrait y avoir un UITableView

Printer Popup

+0

Je me demande si avec 'printerPickerController: shouldShowPrinter:' vous pouvez récupérer toutes les 'UIPrinter' , car il devrait être appelé pour chaque imprimante. Vous devrez peut-être appeler le spectacle 'UIPrinterPickerController' (et le cacher, ou dans une partie invisible de l'écran, rejeter rapidement, je ne sais pas quand la méthode déléguée devrait être appel, c'est-à-dire si cell willShow, ou déjà défini) pour que la méthode précédente de 'UIPrinterPickerControllerDelegate' soit appelée. – Larme

Répondre

2

le NSNetServiceBrowser est précisément pour cela.

En bref, ce que vous devez faire est:

1) définir un objet comme NSNetServiceBrowserDelegate 2) créer un objet NSNetServiceBrowser 3) affecter le délégué 4) à l'aide browserObject.searchForServices(ofType: "_printer._tcp.", inDomain: "") va obtenir divers commentaires au déléguer.

Un simple test sur ma fin a obtenu:

didFind: Samsung C460 Series (SEC001174EDCB63) 

pour la méthode déléguée:

func netServiceBrowser(_ browser: NetServiceBrowser, didFind service: NetService, moreComing: Bool) { 
    print("didFind: \(service.name)") 
} 
+0

Cela semble bien jusqu'ici. Je ne peux tester que la semaine prochaine, puisque je n'ai pas moi-même d'imprimantes AirPrint – smnk

+0

Pour ceux qui comme moi ont essayé de comprendre cette réponse sans une bonne connaissance d'objectif-c/swift, sachez que cela est expliqué plus en détails sous https: //developer.apple.com/library/content/documentation/Networking/Conceptual/NSNetServiceProgGuide/Articles/BrowsingForServices.html. –