【问题标题】:Text formatting in NSTextFieldNSTextField 中的文本格式
【发布时间】:2010-08-27 12:50:12
【问题描述】:

我有一个使用 NSTextField 实例进行就地文本编辑的图形应用程序,这个功能是很久以前添加的,我从来没有理由去检查它,但是,我最近收到了一个报告:文本文件没有t 允许文本格式。格式 -> 文本菜单子项全部禁用,因此无法设置文本项的段落。

问题:我应该如何设置 NSTextField 来支持段落编辑?我确信它之前确实有效,因为我有一些带有格式化文本的项目,并且 NSTextField 自从应用程序诞生以来就在那里。我错过了系统/XCode 更新的内容吗?

我的 NSTextField 是多行的,可编辑的,允许编辑文本属性。

【问题讨论】:

    标签: cocoa nstextfield text-formatting


    【解决方案1】:

    如果以后有人会遇到这个问题,我可以详细描述一下这个问题:

    1. 如果没有使用标尺,NSTextView 拒绝应用格式(我想是最近的操作系统更新)
    2. NSTextField 本身不进行文本编辑,它使用由拥有的 NSWindow 驱动的共享 NSTextView 实例
    3. 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
    

    瞧,格式又回来了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多