我想知道是否有人有巧妙的方法来检查某个对象是否属于UIKeyboard
类型?我不能使用UIKeyboardDidShow
通知,因为我使用它们来调出键盘以外的其他inputView类,所以我必须能够区分哪个inputView当前在屏幕上(即我有一个)弹出屏幕上有一个控制面板,可以让你改变某些东西的颜色)。
使用[view isKindOfClass:[UIKeyboard class]]
不起作用,因为UIKeyboard无法识别,我无法导入它的.h文件而不会出现错误。
有谁知道我能在这做什么?
答案 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
}