【问题标题】:iOS Objective C: How to be notified when the user taps on the spacebar? [duplicate]iOS Objective C:当用户点击空格键时如何得到通知? [复制]
【发布时间】:2017-01-26 06:58:15
【问题描述】:

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

-(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 和其他疾病并且已经失去说话能力的人使用。

【问题讨论】:

    标签: ios objective-c iphone xcode8 ios10


    【解决方案1】:

    textView:shouldChangeTextInRange:replacementText:if([self.myTextView.text isEqualToString:@" "]) { 替换为if([text isEqualToString:@" "]) {。用户刚刚输入的新文本是textself.myTextView.text 是已经存在的文本。

    【讨论】:

    • 我也试过这个,不幸的是它没有产生响应。
    • 我想通了。我必须在 viewDidLoad 中将 myTextView.delegate 设置为 self。那是我的问题。再次感谢您。
    【解决方案2】:

    试试这个

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

    【讨论】:

    • 我试过这个,但不幸的是它不起作用。但感谢您的意见。
    • 好的,否则尝试在主线程上执行选择器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多