Wie kann ich ändern das automatisch generierte info-Fenster in meinem Kakao-app?
Den Menüpunkt "Über " MyApp" automatisch erstellt wurde, für mich, und es zeigt ein info-Fenster. Wie Bearbeite ich dieses Fenster? Ich möchte noch hinzufügen, einige zusätzliche Sachen da, aber ich kann nicht finden, die xib-überall.
Dank!
- Verwenden NSMenu und NSMenuItem für das hinzufügen von Elementen. für die Bearbeitung von Standard-option xib öffnen und Bearbeiten "MainMenu".
- Ich möchte zum Bearbeiten der tatsächlichen über die Fenster jedoch nicht dem Hauptmenü die Menüelemente.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie den Inhalt
Credits.rtf
- Datei befindet sich im inneren des "supporting files" die Gruppe von Ihrem Projekt.About MyApp
Menü-Taste. Dann, wenn es geklickt wird, erstellen Sie Ihre Fenster-controller und zeigen Sie das Fenster. So können Sie eine benutzerdefinierte.xib
- Datei für das Fenster (oder sogar laden Sie es programmgesteuert). @simon.dNSApp
) : github.com/nicolas-miari/Cocoa-Custom-About-WindowDies ist standard bei Xcode-Vorlagen für Kakao apps. Lesen Sie weiter, um zu sehen, wie es verdrahtet ist.
Gibt es keine xib: Dieses Fenster wird zur Laufzeit durch das application-Objekt (
[NSApplication sharedApplication]
), wenn er die Nachricht erhältorderFrontStandardAboutPanelWithOptions:
, die das Menü-Element gesendet wird, wenn ausgewählt (wie Sie ein überprüfen Sie im Connections Inspector im Interface Builder).Standardmäßig (wie andere erwähnt haben), es lädt die Inhalte anzuzeigen, die aus einer Datei namens "Credits".rtf", wenn eine solche Datei vorhanden ist, die innerhalb Ihrer app-bundle Ressourcen; sonst packt Sie grundlegende Informationen aus Ihrem app-Info.plist-Einträge:
Was Sie tun können, ist zu überschreiben, dieses Verhalten wie folgt:
Erstellen Sie eine benutzerdefinierte
NSWindowController
Unterklasse initialisiert Sie mit dem benutzerdefinierten Fenster nib-Namen und festgelegt, wie die nib-s Besitzer:Schließen Sie Ihr Fenster Über die Untersichten an die Verkaufsstellen im Fenster controller-Klasse.
Auch, geben Sie die Klasse für Datei-Besitzer, wie Sie Ihre benutzerdefinierten NSWindowController Unterklasse und schließen Sie das Fenster "New Referencing Outlet" auf Datei-Eigentümers
window
Eigenschaft.about:
Methode der Platzhalter-Objekt "First Responder".In Ihrem app delegieren, fügen Sie eine Instanz-variable für Ihre Fenster controller, so dass es nicht freigegeben ist, sofort (alternativ, machen Sie Ihre Fenster controller-Klasse, die ein singleton, und verwenden Sie die share-Instanz):
Immer noch in AppDelegate, implementieren Sie die Methode
about:
Sie, dass Sie WLAN in Schritt 3, so wie hier:...oder, wenn Ihr view-controller implementiert ein singleton, so wie hier:
Schließlich, um für Ihre controller-Fenster korrekt angezeigt, die Ihre app Informationen, Lesen Sie die entsprechenden Tasten aus der Info.plist-Datei, wie dieser (eigentliche Steckdose ivars werden verschiedene, in der Sie den Fall):
Könnten Sie versucht sein, Lesen Sie die app-Symbol aus den gebündelten Ressourcen zu, aber es gibt einen eleganteren Weg, der funktioniert, auch wenn Sie nicht festlegen, dass ein Symbol und stecken mit dem Standard - "Herrscher + Bleistift + Pinsel über das Blatt" app-Symbol: Schnappen Sie sich die runtime-Symbol-image mit dem folgenden code:
Ich habe zusammen ein demo-Projekt auf Github das zeigt diese und weitere Anpassungen des Fensters.
UPDATE: ich habe eine Swift version der demo-Projekt zum Github-repository.
Freuen:
about:
Methode. Es funktioniert ,die Methode muss eine Unterschrift von@IBOutlet func about(_ sender: Any)
im Swift - (vergessen Sie nicht, den Unterstrich vor dem argument-name!)