【问题标题】:Text formatting in NSTextFieldNSTextField 中的文本格式
【发布时间】:2010-08-27 12:50:12
【问题描述】:
我有一个使用 NSTextField 实例进行就地文本编辑的图形应用程序,这个功能是很久以前添加的,我从来没有理由去检查它,但是,我最近收到了一个报告:文本文件没有t 允许文本格式。格式 -> 文本菜单子项全部禁用,因此无法设置文本项的段落。
问题:我应该如何设置 NSTextField 来支持段落编辑?我确信它之前确实有效,因为我有一些带有格式化文本的项目,并且 NSTextField 自从应用程序诞生以来就在那里。我错过了系统/XCode 更新的内容吗?
我的 NSTextField 是多行的,可编辑的,允许编辑文本属性。
【问题讨论】:
标签:
cocoa
nstextfield
text-formatting
【解决方案1】:
如果以后有人会遇到这个问题,我可以详细描述一下这个问题:
- 如果没有使用标尺,NSTextView 拒绝应用格式(我想是最近的操作系统更新)
- NSTextField 本身不进行文本编辑,它使用由拥有的 NSWindow 驱动的共享 NSTextView 实例
- NSWindow 的默认文本编辑器不使用标尺。
这会导致在使用 NSTextField 时禁用文本格式。
解决方案是继承NSWindow:
@implementation MyWindow
- (NSText *)fieldEditor:(BOOL)createWhenNeeded forObject:(id)anObject
{
NSText* text = [super fieldEditor:createWhenNeeded forObject:anObject];
if ([text isKindOfClass:[NSTextView class]])
[(NSTextView *)text setUsesRuler:YES];
return text;
}
@end
瞧,格式又回来了。