我开始学习如何使用 Objective C 编写一个 mac 应用程序。现在我有一个 TextView 填充了文本。有什么方法可以获取该文本视图中出现的特定单词的实例数。
我已经阅读了NSTextFinder
Class 但我无法将我的 TextView 设置为客户端,NSTextFinder
并且没有示例代码可以帮助我。任何帮助表示赞赏
我开始学习如何使用 Objective C 编写一个 mac 应用程序。现在我有一个 TextView 填充了文本。有什么方法可以获取该文本视图中出现的特定单词的实例数。
我已经阅读了NSTextFinder
Class 但我无法将我的 TextView 设置为客户端,NSTextFinder
并且没有示例代码可以帮助我。任何帮助表示赞赏
我假设您需要做的就是提供一个标准的 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个狗字。