Je configure la fenêtre de préférences pour mon application cool, qui affiche du texte. Dans les préférences, j'ai mis en place un bouton qui ouvre un NSFontPanel
. Mon application stocke la couleur et la police de texte préférées de l'utilisateur et s'ouvre toujours avec ces paramètres afin que l'utilisateur n'ait jamais à voir le texte affiché dans une couleur ou une police qu'il ne souhaite pas.Comment définir les valeurs par défaut pour un NSFontPanel?
Le problème est, alors que mon application est capable de se souvenir de ces préférences, le NSFontPanel
a des problèmes. Lorsque j'ouvre le panneau de police pour la première fois, les valeurs par défaut de tous les champs sont réinitialisées. Après les avoir manipulés, fermé le panneau et l'avoir rouvert, les valeurs correctes sont conservées. Le problème se produit uniquement lorsque j'ouvre le panneau pour la première fois.
Je ne comprends pas pourquoi cela se passe!
J'ai pris soin de définir la police et la couleur du panneau lorsque mon application démarre, comme vous pouvez le voir dans cet extrait:
def show_entry_font_menu(sender)
font_manager = NSFontManager.sharedFontManager
color_panel = NSColorPanel.sharedColorPanel
font_manager.setDelegate self
color_panel.setDelegate self
font_manager.setSelectedFont(preferences.entry_font, isMultiple:false)
font_panel = font_manager.fontPanel(true)
font_panel.makeKeyAndOrderFront(sender)
attributes = preferences.entry_font_attributes
color = preferences.entry_font_color
font_manager.setSelectedAttributes(attributes, isMultiple:false)
color_panel.setColor(color) if preferences.entry_font_color
self.did_open_font_panel = true
end
Ha! C'est le genre de chose que je n'aurais jamais compris! – Ziggy