2013-04-08 84 views
0

我想知道是否有人有一個聰明的方法來檢查,看看對象是否類型UIKeyboard?我不能使用UIKeyboardDidShow通知,因爲我使用它們來提供除鍵盤外的其他inputView類,所以我必須能夠區分哪個inputView當前在屏幕上(即,我有一個彈出的具有控制面板的屏幕,可讓您更改某物的顏色)。檢查對象是否爲UIKeyboard

使用[view isKindOfClass:[UIKeyboard class]]不起作用,因爲UIKeyboard無法識別,我無法導入它的.h文件而沒有出現錯誤。

有沒有人知道我可以在這裏做什麼?

回答

5

使用反射。

[view isKindOfClass:NSClassFromString(@"UIKeyboard")] 
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 
} 
+0

公平地講,上面的回答,我只好將它們標記爲正確的,因爲他們回答我的問題(沒有我意識到我甚至沒有鍵盤視圖)。但你的解決方案是我最終使用的解決方案,因爲我甚至沒有意識到inputView是零。給你一點,謝謝! – 2013-04-08 14:46:52