我有一个图形应用程序,它使用NSTextField实例进行就地文本编辑,这个功能很久以前就添加了,我从来没有理由检查它,但是,我最近收到了一个报告:text filed doesn' t允许文本格式化。格式 - >文本菜单子项全部被禁用,因此无法设置文本项的段落。
问题:如何设置NSTextField以支持段落编辑?我确定它之前有用,因为我有一些带有格式化文本的项目,并且自应用程序诞生以来NSTextField就在那里。我错过了系统/ XCode更新的内容吗?
我的NSTextField是多行的,可编辑的,允许编辑文本属性。
答案 0 :(得分:3)
如果有人将来会面对这个问题,我可以详细描述这个问题:
使用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
瞧,格式化又回来了。