首页 文章

NSTextView在没有字符串时更改插入点(插入)光标大小

提问于
浏览
2

我正在创建一个 NSTextView ,我想在NSTextView为空时更改插入点的大小 .

看来,插入符光标(I-Beam / IBeam光标)大小基于 NSTextViewattributedString 属性上的当前字体大小属性 .

问题是因为 NSTextView 有一个空的 attributedString ,所以字符串上没有属性 . 这意味着我无法应用字体大小 .

但是,我可以更改 typingAttributes 以使fontSize正确 - 但插入点光标在我开始输入之前不会更新大小

请参阅这些屏幕截图:请注意,右侧的textview有一个小插入点光标:

enter image description here

我开始输入,它的大小更新:

enter image description here

所以我的问题是,当我初始化它时,是否需要在 NSTextView 上设置一个属性,以便使初始插入点光标的大小正确? (我希望它匹配 typingAttributes 字体)

编辑:@Mark Bessey提出了一个很好的问题 - 我正在设置输入属性的顺序是什么:

[_textEditor setTypingAttributes:typingAttributes];
  [_textEditor setDelegate:self];

  [view addSubview:_textEditor];
  [self updateInsertionPointColor];

  [[view window] makeFirstResponder:_textEditor];
  [view setNeedsDisplay:YES];

1 回答

  • 0

    在我的applicationDidFinishLaunching方法中,这可以在一个简单的测试应用程序中运行:

    NSFont *font = [NSFont fontWithName:@"Marker Felt" size:24.0];
    NSDictionary *attr = @{
                             NSFontAttributeName: font
                           };
    [self.textView setTypingAttributes:attr];
    

    我得到了我期望的大型工字形光标 .

    这与TextEdit的作用基本相同(示例代码here),因此只要设置typingAttributes,它就不会做任何错误 .

    我想知道你是否在错误的时间设置属性 . 你什么时候设置typingAttributes?屏幕上的视图?它是第一响应者吗?

相关问题