NSFontPanel 问题
Issue with NSFontPanel
我有一个用户需要修改样式(字体、大小、粗体、前后颜色...)的应用程序
如何在 FontPanel 中加载初始样式并在用户验证后获取新属性?
我尝试了很多不同的方法,但都没有成功。
谢谢
使用setPanelFont:isMultiple:
设置初始选择的字体。
使用[NSFontManager sharedFontManager] setSelectedAttributes:isMultiple:
改变初始颜色;颜色的字典键是 NSForegroundColorAttributeName
和 @"NSDocumentBackgroundColor"
,样式的键是 NSUnderlineStyleAttributeName
和 NSStrikethroughStyleAttributeName
。
当字体改变时,将调用委托实例的 changeFont:
方法。
同上样式:changeAttributes:
方法。
以及文本和文档颜色:setColor:forAttribute:
方法。
在 changeAttributes 方法中获取新属性:
NSDictionary * newAttributes = [sender convertAttributes:@{}];
Swift 4.2:
NSFontPanel.shared.setPanelFont(myNSFont, isMultiple: false)
NSFontManager.shared.setSelectedAttributes([NSAttributedString.Key.foregroundColor.rawValue: myNSColor], isMultiple: false)
您可以找到所有属性键的列表here - 旧样式常量尚未弃用,但从 10.13 开始,不再有效。
要在更改时收到更改通知,例如,没有附加字段编辑器的标签的内容,您需要设置 NSFontManager.shared 的目标和操作,然后注册对于 NSColorPanel.colorDidChangeNotification(从 FontPanel 打开 ColorPanel 时,NSColorChanging 不会触发)。
我有一个用户需要修改样式(字体、大小、粗体、前后颜色...)的应用程序 如何在 FontPanel 中加载初始样式并在用户验证后获取新属性?
我尝试了很多不同的方法,但都没有成功。
谢谢
使用setPanelFont:isMultiple:
设置初始选择的字体。
使用[NSFontManager sharedFontManager] setSelectedAttributes:isMultiple:
改变初始颜色;颜色的字典键是 NSForegroundColorAttributeName
和 @"NSDocumentBackgroundColor"
,样式的键是 NSUnderlineStyleAttributeName
和 NSStrikethroughStyleAttributeName
。
当字体改变时,将调用委托实例的 changeFont:
方法。
同上样式:changeAttributes:
方法。
以及文本和文档颜色:setColor:forAttribute:
方法。
在 changeAttributes 方法中获取新属性:
NSDictionary * newAttributes = [sender convertAttributes:@{}];
Swift 4.2:
NSFontPanel.shared.setPanelFont(myNSFont, isMultiple: false)
NSFontManager.shared.setSelectedAttributes([NSAttributedString.Key.foregroundColor.rawValue: myNSColor], isMultiple: false)
您可以找到所有属性键的列表here - 旧样式常量尚未弃用,但从 10.13 开始,不再有效。
要在更改时收到更改通知,例如,没有附加字段编辑器的标签的内容,您需要设置 NSFontManager.shared 的目标和操作,然后注册对于 NSColorPanel.colorDidChangeNotification(从 FontPanel 打开 ColorPanel 时,NSColorChanging 不会触发)。