问题标签 [nsfontpanel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
173 浏览

cocoa - NSTextField 吃 NSFontPanel..?

NSFontPanel当我的应用程序中的一个焦点集中时,我在接收任何消息时遇到了一个奇怪的问题NSTextField

即使是一个子类NSTextField也没有从字体面板接收任何内容.. 似乎面板发送的所有内容(例如,在更改字体、颜色等时)都只是在 AppKit 的某个地方被吃掉了。

当文本字段没有聚焦时,一切正常,即我得到了通常的changeFont:和相关的消息。

此外,与NSTextView似乎没有任何属性可以在NSTextField..

非常感谢任何提示!

0 投票
1 回答
299 浏览

cocoa - NSTextView 不会从 NSFontPanel 更改字体大小或颜色

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

  • 可编辑
  • 可选择的
  • 字段编辑器
  • 富文本
  • 撤消
  • 图形
  • 非连续布局
  • 字体面板
  • 统治者
  • 检查员栏

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

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

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

更新

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

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