我创建了一个基本的NSTextView,我在Interface中选择了以下选项:
我将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显示的TextView中显示ViewController。如果我从Modal到Show,大小和颜色都很好。插入新行和选项卡也不需要额外的命令。
有什么理由这样做吗?是否有任何定制,应该做在海格,以避免这一点?为什么视图控制器表示会影响字体面板的行为?
发布于 2020-07-02 23:52:09
NSFontPanel有一个'worksWhenModal‘属性,听起来好像它可能被设置为'false’。
指示接收方是否允许在模态窗口和面板中更改字体的布尔值。文档:
https://stackoverflow.com/questions/43164004
复制相似问题