好的,这就是我想要的:

  • 我们有一个NSTextView
  • 在光标位置(如何确定)获取“当前”单词(作为NSRange吗?)
  • 突出显示它(更改其属性)

  • 我不确定该怎么做:我的意思是我的主要关注点是在NSTextView中获取当前位置并准确地理解该词(我知道有些Text插件支持该功能,但是我不确定最初的NSTextView实现。 ..)

    是否有任何内置功能?或者,如果没有,有什么想法吗?

    更新:光标位置(已解决)
    NSInteger insertionPoint = [[[myTextView selectedRanges] objectAtIndex:0] rangeValue].location;
    

    现在,仍在尝试寻找一种解决方法来指定基础单词...

    最佳答案

    这是一种方法:

    NSUInteger insertionPoint = [myTextView selectedRange].location;
    NSString *string = [myTextView string];
    
    [string enumerateSubstringsInRange:(NSRange){ 0, [string length] } options:NSStringEnumerationByWords usingBlock:^(NSString *word, NSRange wordRange, NSRange enclosingRange, BOOL *stop) {
    if (NSLocationInRange(insertionPoint, wordRange)) {
        NSTextStorage *textStorage = [myTextView textStorage];
        NSDictionary *attributes = @{ NSForegroundColorAttributeName: [NSColor redColor] }; // e.g.
        [textStorage addAttributes:attributes range:wordRange];
        *stop = YES;
    }}];
    

    关于objective-c - 在NSTextView中获取并突出显示当前单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12554501/

    10-12 22:01