Comment créer une fenêtre de présentation modale dans Mac OS?
Comment puis-je créer modal coulissante/fenêtre en vue "dans la fenêtre" à XCode comme à ces capture d'écran?
J'ai essayé de créer une nouvelle Fenêtre contrôleur avec "panneau d'Authentification style" animation, mais que je reçois seulement XCode se bloque.
source d'informationauteur Vasily
Vous devez vous connecter pour publier un commentaire.
Ce genre de fenêtre modale est appelé une Feuille. Il est très facile d'obtenir ce comportement avec un Storyboard, segue, ou par programmation avec un
NSViewController
sous-classe. L'exemple ci-dessous est juste un vide OS X application Cocoa créé par Xcode. (J'ai choisi Swift comme la langue, mais il fonctionnera de la même façon avec Objective-C.)Les seules choses que j'ai ajouté à la table de montage a été un second point de Vue Contrôleur de la vue de feuille, et une étiquette et bouton-poussoir sur chaque vue.
De L'Affichage De La Vue De Feuille Avec Un Storyboard Segue
Avec la Fiche de Vue-contrôleur sélectionné et les Connexions de l'Inspecteur de l'onglet affiché, se connecter ", Présentant Enchaîne - feuille" à l'Affichage "Feuille".
Connecter ", a Reçu des Actions - dismissController:" à "Fermer la Feuille" bouton.
Que c'est! Il n'y a pas de code nécessaire pour que cet exemple fonctionne; il suffit de créer et d'exécuter des.
De L'Affichage De La Vue De Liste Par Programmation
Noter que Xcode crée le projet par défaut avec deux fichiers de classe personnalisée. Dans le Storyboard, AppDelegate.swift est représenté dans l'Application de la scène:
Nous n'avons pas besoin d'utiliser l'AppDelegate pour cet exemple, mais vous pouvez l'utiliser pour interagir avec le Menu Principal, ou d'autres choses.
La coutume ViewController.swift classe personnalisée sera utilisée pour la présentation de la feuille. Il est représenté dans la Vue du Contrôleur de scène:
Pour instancier la Vue de Feuille de Contrôleur de la programmation, il a besoin d'un Storyboard ID. Ici, nous allons lui donner l'ID "SheetViewController". Notez que c'est toujours une plaine
NSViewController
; nous n'avons pas besoin d'en faire une classe personnalisée pour cet exemple, mais votre application peut:De l'affichage de la ViewController.swift fichier dans le rédacteur en chef adjoint, Ctrl-faites glisser une connexion à partir de l'Affichage "Feuille" bouton dans la classe personnalisée. Cela permettra de créer de stub code pour un @IBAction de la fonction que nous allons nommer "displaySheet":
Dans le ViewController.swift fichier, nous allons mettre en œuvre la Feuille de-Vue-Contrôleur paresseux var. Elle permettra d'obtenir des instancié qu'une seule fois, la première fois qu'il est accessible. Qui arrivera la première fois le displaySheet fonction est appelée.
Swift 4 version:
Comme dans le premier exemple, "Fermer la Feuille" bouton est connecté à la "dismissController:" l'action sur la Feuille-Vue-Contrôleur. Sinon, vous pouvez appeler cette fonction par programme à partir de votre ViewController classe:
Pour plus d'informations, reportez-vous à la Pomme "Feuilles de Sujets de Programmation" document:
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Sheets/Sheets.html
Objective-C version: