UIKeyboard代表“。?123”键

时间:2012-06-06 19:07:30

标签: iphone objective-c ios cocoa-touch uikeyboard

当点击“。?123”按钮时,是否有人知道我们是否从键盘上获得了委托回叫?我们在文本键盘上放置了一个自定义的数字键盘,一旦用户点击“。?123”按钮就可以删除它,以避免重复键。

任何建议。

1 个答案:

答案 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]);
        }
    }
}