2017-01-26 9 views
0

私は数日間この作業をしており、運がなかった。私はスピーチアプリへのテキストを持っているので、ユーザがスペースバーをタップするたびにコード内のメソッドをトリガする必要があります。だから彼らは入力され、すべての言葉の後に彼らはスペースバーをタップし、アプリは何かをやるでしょう。ここでは似たような例がいくつか見つかりましたが、私はそれらを動作させていません。下記のようにコードを実装しましたが、何の応答も受けません。ここで私が試したことがあります。これらのいずれものNSLogをトリガーiOS目的C:ユーザーがスペースバーをタップしたときの通知方法

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(textViewText:) 
               name:UITextViewTextDidChangeNotification 
               object:self.myTextView]; 

- (void)textViewText:(NSNotification *)notification {   
    if([self.myTextView.text isEqualToString:@" "]) { 
     /* do something */ 
     NSLog(@"YES YES YES"); 
    }  
} 

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ 
    if([self.myTextView.text isEqualToString:@" "]) { 
     /* do something */ 
     NSLog(@"YES YES YES"); 
    } 
    return YES; 
} 

は、私はまた、次のように通知センターアラートを設定してみました。これは私が基本的に何をする必要があります:

if(the user taps the spacebar) { 
    [self trigger the play method]; 
} 

私は助けていただければ幸いです。違いがある場合、私のアプリは100%無料で、広告はなく、ALSや他の病気の人々の多くが使用して話す能力を失っています。

答えて

2

textView:shouldChangeTextInRange:replacementText: if([self.myTextView.text isEqualToString:@" "]) {if([text isEqualToString:@" "]) {に置き換えます。ユーザーが入力した新しいテキストはtextで、self.myTextView.textはすでに存在していたテキストです。

+0

を試してみてください。 –

+1

私はそれを理解しました。 myTextView.delegateをviewDidLoadのselfに設定する必要がありました。それが私の問題でした。ありがとうございました。 –

2

は私もこれを試してみましたが、残念ながらそれは応答を生成しません。この

- (void)textViewText:(NSNotification *)notification { 
    UITextField *obje = notification.object; 
    if([obje.text isEqualToString:@" "]) { 
     /* do something */ 
     NSLog(@"YES YES YES"); 
    } 
} 
+0

私はこれを試しましたが、残念ながらそれは動作しません。しかし、入力していただきありがとうございます。 –

+0

さて、メインスレッドでセレクタを実行してみてください。 – karthikeyan

関連する問題