当点击“。?123”按钮时,是否有人知道我们是否从键盘上获得了委托回叫?我们在文本键盘上放置了一个自定义的数字键盘,一旦用户点击“。?123”按钮就可以删除它,以避免重复键。
任何建议。
答案 0 :(得分:2)
没有任何通知可以提供您想要的内容。事实上,没有任何公共API可以让您访问该级别的键盘。我能想到的唯一方法就是在。?123键上方放置一个透明按钮,然后检测它,然后将触摸传递给底层按钮。按钮视图深深地隐藏在视图层次结构中。我首先使用此代码,找到键盘,然后记录包含该按钮的视图(UIKBKeyViews)。下面日志中的五个视图似乎是大写,退格,。?123,空格键和返回视图。
-(void) keyboardUp: (NSNotification*) notification { // called from UIKeyboardDidShowNotification
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows]objectAtIndex:1];
UIView *keyboard;
for(int i = 0; i < [tempWindow.subviews count]; i++) {
keyboard = [tempWindow.subviews objectAtIndex:i];
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) {
// NSLog(@"Keyboard subviews are: %@",keyboard.subviews);
NSLog(@"%@",[[[[[[[[[[[[[UIApplication sharedApplication] windows]objectAtIndex:1] contentView]subviews]lastObject]subviews]lastObject]subviews]lastObject]subviews]lastObject]subviews]);
}
}
}