【问题标题】:Custom NSFont picker menu自定义 NSFont 选择器菜单
【发布时间】:2019-05-02 19:53:04
【问题描述】:

而不是使用 NSFont 面板

为我的文本视图选择一种字体。我正在尝试构建一组自定义弹出按钮来选择字体系列,然后选择字体子类型。

我的问题是,当我有一个带有一些文本的 NSTextView 时,我可以右键单击文本以打开字体面板,并且对面板的更改会自动应用于 textView。如何通过我的自定义实现实现这种行为?我相信我已经尝试过使用 NSFontManager.shared 进行一些摆弄

NSFontManager.shared.setSelectedFont(font, isMultiple: false) textView.changeFont(NSFontManager.shared)

我通过将选定的字体和大小应用到 textView textStorage 的 NSAttributedString 来解决问题,但这感觉像是一个 hack。

【问题讨论】:

  • 将 changeFont: 发送到您的 textview - 这是正确的。 NSFontManager.shared.setSelectedFont 也是正确的。这两行有什么问题吗?您可以通过使用断点命令 (lldb) br set -n "changeFont:" 在尝试使用 fontpanel 更改字体并命中断点后看到这一点

标签: macos cocoa


【解决方案1】:

如果这是最好的方法,但它确实有效

      textView.usesFontPanel = true
      NSFontManager.shared.fontPanel(true)?.setPanelFont(font, isMultiple: false)
      NSFontManager.shared.modifyFontViaPanel(self)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    相关资源
    最近更新 更多