【问题标题】:detect/get notification if shift key (modifier-key) pressed in uitextview如果在 uitextview 中按下 shift 键(修饰键),则检测/获取通知
【发布时间】:2011-07-30 11:00:21
【问题描述】:

我试图弄清楚是否有任何方法可以检测是否按下了 shift 键,或者当按下 shift 键时是否发送任何通知在UIKeyboard

- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string

不会因为 shift 键按下而被调用,因为它是一个修饰键。

【问题讨论】:

    标签: uitextview uikeyboard shift modifier-key


    【解决方案1】:

    不知道你是需要结合其他文本知道还是只检测单档点击,但这是我检测前者的解决方案:

    在我的例子中,这只是一个字符:

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)inText
    

    这会将大写文本转换为小写并设置 shiftPressed 值(如果文本是非字母文本则忽略)

    //Shift Detection
    BOOL shiftPressed = NO;
    
    //Detect non letter characters
    NSCharacterSet *letterCharacterSet = [NSCharacterSet letterCharacterSet];
    NSString *trimmedText = [text stringByTrimmingCharactersInSet:letterCharacterSet];
    
    if ([text length] == 1) {  
        if (![trimmedText length]) 
        {            
            NSString *upperCaseString = [text uppercaseString];
            if ([upperCaseString isEqualToString:text]) {
                NSString *lowerCaseString = [text lowercaseString];
                text = lowerCaseString;
                shiftPressed = YES;
            }
        }
    }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 2012-02-05
      相关资源
      最近更新 更多