0

我开始学习如何使用 Objective C 编写一个 mac 应用程序。现在我有一个 TextView 填充了文本。有什么方法可以获取该文本视图中出现的特定单词的实例数。

我已经阅读了NSTextFinderClass 但我无法将我的 TextView 设置为客户端,NSTextFinder并且没有示例代码可以帮助我。任何帮助表示赞赏

4

1 回答 1

3

我假设您需要做的就是提供一个标准的 Cocoa 查找栏功能,NSTextView在这种情况下,它只是self.textView.usesFindBar = YES针对有NSTextView问题的。当用户按下COMMAND+F

也许您正在寻找不使用查找 UI 的解决方案 - 但您不会使用NSTextFinder其功能作为查找 UI 的控制器类...如果您正在寻找非 UI-基于搜索和计数机制然后编辑您的问题,我们可以尝试回应。

编辑:

如果您只想计算NSTextView's 中某个单词的出现次数,那么NSScanner这是一个解决方案。请参阅NSScanner作为单词计数器的示例:

#import <Foundation/Foundation.h>

int main(int argc, char *argv[]) {
    NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];

    NSString *sampleString = @"The dog ate my homework. Later, \
         the dog ate my lunch.  Sometimes, dogs do that.";
    NSScanner *scanner = [NSScanner scannerWithString:sampleString];
    NSString *aDog = nil;
    NSInteger wordCount = 0;
    while( ![scanner isAtEnd] ) {
        if( [scanner scanUpToString:@"dog" intoString:&aDog] ) {
            if( [scanner scanString:@"dog" intoString:&aDog] ) {
                wordCount++;
            }
        }
    }
    printf("There are %ld dog words in the text.\n",wordCount);
    [p release];
}

这打印出来:

文中有3个狗字。

于 2012-10-06T17:41:00.943 回答