如何检查iphone上的键盘后面是否有视图

时间:2011-06-22 11:38:42

标签: iphone objective-c cocoa-touch uikeyboard

在我的应用程序中,我有一堆textlabels和textviews。有时文本视图位于键盘下方。我的问题是,是否有办法检查键盘后面是否有文本视图来移动它。我已经知道如何移动视图,我知道keyboardWillAppear通知,但我不知道如何检查视图是否在键盘后面。问题是,如果它不在kayboard下面,我不想移动textview。怎么能实现呢?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我认为看到这个的唯一方法是验证每个UITextField和UITextView是否为

返回YES
[_text isFirstResponder];

如果任何UITextField或UITextView是First Responder,那么这意味着键盘位于屏幕的底部。

您可以通过收听UITextFieldDelegate和UITextViewDelegate ShouldBeginEditing事件来查看键盘: 对于UITextField,它是:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;// return NO to disallow editing.

,对于UITextView,它是:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;

希望它有所帮助。

答案 1 :(得分:0)

我会检查第一响应者,如上所示

[text isFirstResponder];

然后我要检查文本字段边界的边界是否小于215(因为我认为键盘的最大高度)并且从那里开始容纳。所以它们一起看起来像:

if([text isFirstResponder]){
    if(text.bounds.y > 215){
       text.bounds.y = CGPointMake(text.bounds.y-(text.bounds.y-215));
    }
}