【问题标题】:NSTextView not changing font size or colour from NSFontPanelNSTextView 不会从 NSFontPanel 更改字体大小或颜色
【发布时间】:2017-04-02 02:30:53
【问题描述】:

我创建了一个基本的 NSTextView,我在 Interface Builder 中选择了以下选项:

  • 可编辑
  • 可选
  • 字段编辑器
  • 富文本
  • 撤消
  • 图形
  • 非连续布局
  • 字体面板
  • 尺子
  • 督察栏

我将 NSViewController 设置为 NSTextView 的代表,我为此 NSTextView 所做的唯一其他自定义操作是启用插入选项卡和新行(通过接受第一响应者):

    func textView(_ textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {

    if commandSelector == #selector(insertNewline(_:)) {
        textView.insertNewlineIgnoringFieldEditor(self)
        return true
    } else if commandSelector == #selector(insertTab(_:)) {
        textView.insertTabIgnoringFieldEditor(self)
        return true
    } //else if commandSelector == #selector(changeColor(_:)) {
        //textView.setTextColor(NSFontPanel.colo, range: <#T##NSRange#>)
    //}

    return false

}

当我尝试使用字体面板+检查栏的命令时,除了更改字体大小或颜色之外,所有命令都可以正常工作,是否有任何问题?还是我需要做额外的绑定/委托等才能让它工作?

这很奇怪,因为如果我更改字体本身(选定文本的)或粗细,它可以正常工作(不需要编码)。

更新

我找到了导致此问题的根源。我在使用 Modal segue 显示的 ViewController 中显示 TextView。如果我从 Modal 更改为 Show,大小和颜色都可以正常工作。插入新行和制表符也不需要额外的命令。

有什么理由会出现这种情况吗?是否应该对 segue 进行任何定制以避免这种情况?还有,为什么视图控制器的表现会影响字体面板的行为?

【问题讨论】:

  • 默认插入制表符和换行符。你为什么打开字段编辑器?
  • 我不得不手动添加它们,因为默认情况下它们对我不起作用:/ 关于字段编辑器,我没有注意到,但实际上我不需要它,所以我现在禁用了它,但问题仍然存在:(

标签: cocoa swift3 nstextview nsstoryboard nsfontpanel


【解决方案1】:

NSFontPanel 有一个“worksWhenModal”属性,听起来好像它可能设置为“假”。

一个布尔值,指示接收器是否允许在模式窗口和面板中更改字体。 Documentation:

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多