我正在创建一个 NSTextView
,我想在NSTextView为空时更改插入点的大小 .
看来,插入符光标(I-Beam / IBeam光标)大小基于 NSTextView
的 attributedString
属性上的当前字体大小属性 .
问题是因为 NSTextView
有一个空的 attributedString
,所以字符串上没有属性 . 这意味着我无法应用字体大小 .
但是,我可以更改 typingAttributes
以使fontSize正确 - 但插入点光标在我开始输入之前不会更新大小
请参阅这些屏幕截图:请注意,右侧的textview有一个小插入点光标:
我开始输入,它的大小更新:
所以我的问题是,当我初始化它时,是否需要在 NSTextView
上设置一个属性,以便使初始插入点光标的大小正确? (我希望它匹配 typingAttributes
字体)
编辑:@Mark Bessey提出了一个很好的问题 - 我正在设置输入属性的顺序是什么:
[_textEditor setTypingAttributes:typingAttributes];
[_textEditor setDelegate:self];
[view addSubview:_textEditor];
[self updateInsertionPointColor];
[[view window] makeFirstResponder:_textEditor];
[view setNeedsDisplay:YES];
1 回答
在我的applicationDidFinishLaunching方法中,这可以在一个简单的测试应用程序中运行:
我得到了我期望的大型工字形光标 .
这与TextEdit的作用基本相同(示例代码here),因此只要设置typingAttributes,它就不会做任何错误 .
我想知道你是否在错误的时间设置属性 . 你什么时候设置typingAttributes?屏幕上的视图?它是第一响应者吗?