可以在NSTextView中加下划线,但不能加粗文本

Hen*_*rik 2 macos nstextview nsdocument nsresponder swift

我在Xcode 8中使用向导创建了一个NSDocuments和storyboard应用程序.在ViewController场景中,我添加了一个NSTextView.某些菜单项被禁用,例如Bold和Italic.

查看第一响应者,粗体和斜体的操作不存在.我应该自己写这些方法吗?这是由于响应者链没有正确设置吗?为什么下划线显示但不大胆?

编辑:添加图像以显示如何使用检查器栏编辑文本,但格式菜单不显示我期望的命令.

该图显示了我如何使用检查器栏修改文本,但不能使用菜单,除了下划线

102*_*4jp 8

这个问题有一个历史(?)的原因.当主菜单在xib文件中创建时,xib文件自动包含NSFontManager实例,并且像Bold这样的菜单项连接到它.但是在现代故事板中,没有预设的NSFontManager实例.

那么,您可以按照以下步骤手动将它们连接到FontManager.

  1. 在Application场景中创建一个普通的Object实例(蓝色立方体).
  2. 将Object实例的类更改为NSFontManager. 在此输入图像描述
  3. 将菜单项连接到addFontTrait(_:)fontManager的操作.同样,将"Bigger"和"Smaller"项目连接到modifyFont(_:). 在此输入图像描述

您还需要设置menuItems的标签,但实际上它们已经设置好了.仅当menuItem的标签是手动时,也手动设置对应的标签0.