I'm trying to figure out if there is any way in which we can detect if shift key is pressed or if any notification is sent when shift key is pressed in UIKeyboard
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string
does not get called for shift key press since it is a modifier key.
不知道您是否需要结合其他文本来了解它,还是只检测单次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;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)