Objective c 如何在NSTextView中获取光标处的当前字体/字号?

Objective c 如何在NSTextView中获取光标处的当前字体/字号?,objective-c,cocoa,nstextview,Objective C,Cocoa,Nstextview,说明:首先,光标=插入点光标,而不是鼠标光标 好的,我想在NSTextView中光标所在的位置返回字体/字体大小/字体颜色。我尝试使用属性:atIndex:effectiveRange:,但失败了,因为我的变量都弄错了。我想这就是我需要的。一些示例代码将非常有用,returning字体。我想字体大小/颜色也一样,我只需要用NSFontAttributeName替换其他东西,对吗?提前谢谢 你试过什么 NSTextView有一个方法selectedRanges,该方法返回当前选择-如果只有一个插入

说明:首先,光标=插入点光标,而不是鼠标光标

好的,我想在NSTextView中光标所在的位置返回字体/字体大小/字体颜色。我尝试使用
属性:atIndex:effectiveRange:
,但失败了,因为我的变量都弄错了。我想这就是我需要的。一些示例代码将非常有用,
return
ing字体。我想字体大小/颜色也一样,我只需要用
NSFontAttributeName
替换其他东西,对吗?提前谢谢

你试过什么

NSTextView
有一个方法
selectedRanges
,该方法返回当前选择-如果只有一个插入点,则返回长度为零的一个

NSTextView
还有一个属性
textStorage
,它返回保存文本的
NSTextStorage
实例。
NSTextStorage
继承自
NSMutableAttributedString
,它继承自
NSAttributedString
,并具有获取文本属性的方法

把这两者结合起来,你就有了答案


应该对所有的人都有用

你还不明白什么
selectedRanges
将告诉您选择了什么/光标在哪里。使用该信息,
textStorage
属性上可用的方法(通过继承
NSAttributedString
)将告诉您文本的属性。字体是文本属性之一。听起来你应该自己花些时间,恢复,然后再回到这一点上。我脑子里有一个想法,但由于我的应用程序是基于文档的,我该如何添加NSTextViewDelegate?我找不到。我想我需要它。?这与查找字体是一个不同的问题
NSTextView
有一个
setDelegate:
方法,您考虑过吗?你可能想看看TextEdit示例代码——苹果提供了完整的源代码,只需在文档中搜索即可。我就是找不到如何进行。我现在明白了。
NSFont *font = [textView.textStorage attribute:NSFontAttributeName atIndex:textView.selectedRange.location effectiveRange:nil];