检查对象是否为UIKeyboard

时间:2013-04-08 14:26:57

标签: iphone ios cocoa-touch uikeyboard

我想知道是否有人有巧妙的方法来检查某个对象是否属于UIKeyboard类型?我不能使用UIKeyboardDidShow通知,因为我使用它们来调出键盘以外的其他inputView类,所以我必须能够区分哪个inputView当前在屏幕上(即我有一个)弹出屏幕上有一个控制面板,可以让你改变某些东西的颜色)。

使用[view isKindOfClass:[UIKeyboard class]]不起作用,因为UIKeyboard无法识别,我无法导入它的.h文件而不会出现错误。

有谁知道我能在这做什么?

2 个答案:

答案 0 :(得分:5)

使用反射。

[view isKindOfClass:NSClassFromString(@"UIKeyboard")]

答案 1 :(得分:1)

如果我明白你在问什么,你可以询问输入视图是否是第一个响应者,或者你可以检查inputView属性以查看它的设置,如果它是零,那就是键盘。

UITextField *field = [[UITextField alloc] initWithFrame:CGRectZero];
if( [field isFirstResponder] ) {
    //Currently being used to input something
}

if( [field inputView] != nil ) {
    //User is not using a default keyboard
}