我想弄清楚是否有任何方法可以检测是否按下了 shift 键,或者在 UIKeyboard
中按下 shift 键时是否发送任何通知
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string
不会被要求按下 shift 键,因为它是一个修饰键。
最佳答案
不知道你是否需要结合其他文本来了解它还是只检测单次点击,但这是我检测前者的解决方案:
就我而言,这只是其中的一个字符:
- (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;
}
}
}
关于uitextview - 如果在 uitextview 中按下 shift 键(修饰键),则检测/获取通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560630/