0

Objective C を使用して Mac アプリケーションをコーディングする方法を学び始めています。現在、TextView にテキストが入力されています。そのテキストビューに表示される特定の単語のインスタンス数を取得する方法はありますか?

Classについて読みましたNSTextFinderが、TextView をクライアントとして設定できず、参考になるNSTextFinderサンプル コードもありません。どんな助けでも大歓迎です

4

1 に答える 1

3

私はあなたがする必要があるのは標準のCocoa検索バー機能を提供することだけだと思います。NSTextViewその場合それは問題の人のためだけself.textView.usesFindBar = YESですNSTextViewCOMMANDユーザーが+を押したとき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 に答える