Wie NSColorPanel (mit NSColorWell) und NSFontPanel der Farbtafel koexistieren machen?
-
06-07-2019 - |
Frage
Ich habe ein Einstellungsfenster in meiner Anwendung, in dem ich eine NSColorWell
habe für einige Hintergrundfarbeinstellung und eine Schaltfläche, die für die Auswahl einer Schriftart eines NSFontPanel
öffnet.
Das Verhalten, das ich haben will, ist die folgende:
-
Wenn ich auf dem
NSColorWell
klicken dann etwas Farbe in das Panel ziehen über, ich will es die Hintergrundfarbe ändern in meinem Bereich "Vorschau" als ich ziehe. -
Wenn ich auf der Schaltfläche „Schrift ...“ Button, ich meinen
NSFontPanel
zeigen und wie ich eine Schriftart wählen, sollte es auch in meinem Bereich „Vorschau“ ändern. Sagen wir, ich klicken Sie auf die Farbe Taste desNSFontPanel
, möchte ich ändern Sie die Farbe meiner Schrift .
Im Wesentlichen Ich versuche, beide Farbtafeln zu machen (obwohl von dem, was ich dort gesehen habe, ist wirklich nur ein gemeinsames Panel pro app) arbeiten unabhängig voneinander.
Im Moment sage ich die Schriftart und Farbtafeln geöffnet haben. Wenn ich auf die Farbe klicken und auf meinem Fenster aktiviert es, dann, wenn ich in der Schrifttafel auf der Farbtaste klicken Sie auf die Farbe nicht die Schrift nicht beeinträchtigt, sondern vielmehr den Hintergrund, da die Farbe gut aktiviert bleibt, und weil ich für Farbänderung registriert Benachrichtigungen in meiner Controller-Klasse.
Könnte jemand geben Sie mir ein Beispiel für eine bestimmte Art und Weise, diese Art von Verhalten zu codieren? Es scheint eine Reihe von verschiedenen Möglichkeiten, um die NSFontPanel
und NSColorPanel
zu machen zeigen (NSFontPanel
oder NSFontManager
?), Sowie viele Möglichkeiten, um die Ereignisse zu behandeln von den Platten kommen selbst (Benachrichtigungen? Delegierten (auf dem NSFontManager
oder NSFontPanel
)? Einsetzen der Steuereinheit in die Responder-Kette?). Ich habe keine Leitlinien für eine ideale Möglichkeit gefunden mehr als eine Farbe Quellen auf einmal zu handhaben, und ich bin ein wenig verloren.
Vielen Dank im Voraus!
Lösung
Die Farbauswahl Mechanismus speziell so ausgelegt ist, dass Sie mehrere Farbfeldern „aktivieren“ können, setzen dann ihre Farbe gleichzeitig. Ich glaube, der Grund, warum die Schaltfläche Farbe der Schrift Tafel nicht „loslassen“ der Farbauswahl ist, weil es offenbar nicht wirklich eine „Farbe gut“ ist. Ich habe dieses Verhalten nicht direkt bemerkt, aber es ist leicht reproduzierbar mit einem einfachen frischen xib mit einem Farbfeld und eine Standard-Textansicht.
Im Wesentlichen können Sie beide klicken Sie auf die gut und die Schriftfarbe und sowohl den gut und ausgewählten Text wird auf die aufgenommene Farbe ändern. Sie können sogar die gut abschalten und nur den Text ändern. Sie können jedoch nicht machen die Schrifttafel „let go“ von der Farbauswahl, bis Sie die Schrifttafel schließen.
Ich würde nennen dies einen Fehler: http://bugreport.apple.com