Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 选择新文本字段时滚动到新文本字段_Ios_Objective C_Iphone_Ios4 - Fatal编程技术网

Ios 选择新文本字段时滚动到新文本字段

Ios 选择新文本字段时滚动到新文本字段,ios,objective-c,iphone,ios4,Ios,Objective C,Iphone,Ios4,我遵循了苹果的指导 它就像一个符咒,除非你已经在一个文本字段和一个新的文本字段中的标签中写作 这是示例中负责滚动的函数。但它从来没有被呼叫过,因为它已经启动了 - (void)keyboardWasShown:(NSNotification*)aNotification; 有人知道这个问题的好解决方案吗?界面: CGSize keyboardSize; BOOL keyboardIsVisible; 实现,键盘显示: keyboardSize = [[info objectForKey:UI

我遵循了苹果的指导

它就像一个符咒,除非你已经在一个文本字段和一个新的文本字段中的标签中写作

这是示例中负责滚动的函数。但它从来没有被呼叫过,因为它已经启动了

- (void)keyboardWasShown:(NSNotification*)aNotification;
有人知道这个问题的好解决方案吗?

界面:

CGSize keyboardSize;
BOOL keyboardIsVisible;
实现,键盘显示:

keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
keyboardIsVisible = YES;
// Move ScrollView
键盘将隐藏:

keyboardIsVisible = NO;
textFieldDidBeginEditing:

if (keyboardIsVisible) {
    // Move ScrollView
}
in.h

英寸


多亏了瓦基奥。

这只是常识。正如你们在苹果的例子中看到的,它已经被监听了。所以问题是如何执行将键盘从textFieldDidBeginEditing移动的代码?好吧,您只需调用UIScrollView的
setContentOffset:
-(void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
,然后输入文本字段的矩形。(由于您在显示键盘之前就知道了键盘的大小,因此可以将其存储并在
textfielddebeginediting:
中使用,尽管此处不需要知道键盘大小)。KeyboardWasShowed函数的关键是,我可以通过知道键盘的大小来计算我想要显示的矩形以及我想要它显示的位置。有关如何在
TextFieldDidBeginEdit中设置键盘大小的信息,请参阅我的编辑:
我明白你的意思,但是在显示键盘之前调用了TextFieldDidBeginEdit:,所以我第一次点击就不会把它储存起来?我还将执行相同的代码功能两次?
CGSize keyboardSize;
- (void)keyboardWasShown:(NSNotification*)aNotification;
- (void)keyboardWasShown:(NSNotification*)aNotification {
    NSDictionary* info = [aNotification userInfo];
    if (info) {
            /* Can get keyboard Size */
            keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey]
    } 

    /* Animation code */

}

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    activeField = textField;
    [self keyboardWasShown:[NSNotification notificationWithName:UIKeyboardDidShowNotification object:nil]];
}