Objective C を使用して Mac アプリケーションをコーディングする方法を学び始めています。現在、TextView にテキストが入力されています。そのテキストビューに表示される特定の単語のインスタンス数を取得する方法はありますか?
Classについて読みましたNSTextFinder
が、TextView をクライアントとして設定できず、参考になるNSTextFinder
サンプル コードもありません。どんな助けでも大歓迎です
Objective C を使用して Mac アプリケーションをコーディングする方法を学び始めています。現在、TextView にテキストが入力されています。そのテキストビューに表示される特定の単語のインスタンス数を取得する方法はありますか?
Classについて読みましたNSTextFinder
が、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つの犬の言葉があります。