iOS Objective-C : How to be notified when the user taps on the spacebar?

标签 ios objective-c iphone xcode8 ios10

<分区>

我已经为此工作了几天,但一直没有成功。我有一个文本到语音应用程序,每次用户点击空格键时,我都需要在我的代码中触发一个方法。所以他们会打字,在每个字后他们点击空格键,应用程序就会做一些事情。我在这里找到了几个看起来很相似的例子,但我还没有让它们发挥作用。我已经实现了建议的代码,如下所示,但我没有收到任何回复。这是我尝试过的。

-(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:@""]) {。用户刚刚输入的新文本是 textself.myTextView.text 是已经存在的文本。

关于iOS Objective-C : How to be notified when the user taps on the spacebar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41868244/

上一篇:iOS 可读字符串/日期格式化程序

下一篇:ios - 在 iOS 上对 native 后台 API 调用使用react

相关文章:

ios - 货币格式化程序 swift 3

ios - 为什么 GLKView 没有上下文?

objective-c - ParseKit之PKTokenizer类如何分离各类符号

iphone - 如果我的 iPhone 应用程序使用 Bonjour,我是否需要与 Apple 签订许可协议(protocol)?

ios - iOS 上的 Dropbox API 无法链接

ios - 为什么我不能选择 "Latest iOS"作为基础 SDK?

ios - 如何将核心数据填充到Azure移动服务的本地表中

objective-c - 如何正确地从方法返回值并使其在应用程序加载后立即可用?

iphone - Objective-C 初始化方法的正确语法

iphone - 如何在 iPhone 应用程序中获取 map View