我有一份NSDocuments&在Xcode 8中使用向导创建的故事板应用程序。在ViewController场景中,我添加了一个NSTextView。某些菜单项被禁用,例如Bold和Italic。
查看First Responder,粗体和斜体的操作不存在。我应该自己写这些方法吗?这是由于响应者链没有正确设置吗?为什么下划线显示但不大胆?
编辑:添加图像以显示如何使用检查器栏编辑文本,但格式菜单不显示我期望的命令。
答案 0 :(得分:8)
这个问题存在历史(?)原因。 当主菜单在xib文件中创建时,xib文件自动包含NSFontManager实例,并且像Bold这样的菜单项连接到它。 但是在现代故事板中,没有预设的NSFontManager实例。
那么,您可以按照以下步骤手动将它们连接到FontManager。
答案 1 :(得分:0)
如果您从菜单项拖动到第一响应者,在菜单视图中,您将获得相同的选项,只需按住Ctrl键。然后你实现你刚刚连接的任何功能。如果您连接文件> newDocument的新功能并在ViewController中实现
func newDocument(_ sender: Any?){
print("func newDocument(_ sender: Any? \(String(describing: sender)))")
}
它会被调用。第一响应者列出所有与添加的对象相同的方法,NSFontManager作为类。我没有在方法前面使用@IBAction,因为我没有连接它。