0

我想知道是否有人有聪明的方法来检查对象是否属于类型UIKeyboard?我不能使用UIKeyboardDidShow通知,因为我正在使用它们来调出除键盘之外的其他 inputView 类,因此我必须能够区分当前在屏幕上的哪个 inputView(即我有一个弹出在具有控制面板的屏幕,可让您更改某物的颜色)。

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

有谁知道我可以在这里做什么?

4

2 回答 2

5

使用反射。

[view isKindOfClass:NSClassFromString(@"UIKeyboard")]
于 2013-04-08T14:31:23.503 回答
1

如果我理解您的要求,您可以询问输入视图是否是第一响应者,或者您可以检查 inputView 属性以查看其是否设置,如果为 nil,则为键盘。

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
}
于 2013-04-08T14:32:54.653 回答