<分区>
<分区>
我已经为此工作了几天,但一直没有成功。我有一个文本到语音应用程序,每次用户点击空格键时,我都需要在我的代码中触发一个方法。所以他们会打字,在每个字后他们点击空格键,应用程序就会做一些事情。我在这里找到了几个看起来很相似的例子,但我还没有让它们发挥作用。我已经实现了建议的代码,如下所示,但我没有收到任何回复。这是我尝试过的。
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if([self.myTextView.text isEqualToString:@" "]) {
/* do something */
NSLog(@"YES YES YES");
}
return YES;
}
我还尝试如下设置通知中心警报:
[[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");
}
}
这些都不会触发 NSLog。这是我基本上需要做的:
if(the user taps the spacebar) {
[self trigger the play method];
}
任何帮助将不胜感激。如果它有所作为,我的应用程序是 100% 免费的,没有广告,并且有很多患有 ALS 和其他疾病并且已经失去说话能力的人使用。
最佳答案
在 textView:shouldChangeTextInRange:replacementText:
中
将 if([self.myTextView.text isEqualToString:@""]) {
替换为 if([text isEqualToString:@""]) {
。用户刚刚输入的新文本是 text
而 self.myTextView.text
是已经存在的文本。
关于iOS Objective-C : How to be notified when the user taps on the spacebar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41868244/