我已经在NSNotificationCenter中注册了两个观察员,keyboardWillShow:和keyboardWillHide:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: nil)
在这两种方法中,当我尝试设置包含UITextView的UIView的动画时,它会跳到我尝试设置动画的帧,然后再设置回原始位置的动画。我在touchesbearth方法中尝试了相同的动画代码来测试它,它在那里工作得很好(设置新帧的动画,而不是跳回原始位置)。
func keyboardWillShow(notification: NSNotification) {
if let endFrame = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.CGRectValue() {
UIView.animateWithDuration(1.0, animations: { () -> Void in
self.footerView.center = CGPointMake(self.footerView.center.x, self.footerView.center.y - endFrame.size.height)
})
}
}
我被难住了。键盘通知是否以某种方式影响新动画?
您必须调用这两种方法来上下动画视图。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
@try
{
if (textField == (UITextField *)[self.view viewWithTag:TEXTFIELD_MOBILE_TAG])
{
CGRect selfframe = CGRectMake([self.view viewWithTag:VIEW_PARENT_TAG].frame.origin.x, [self.view viewWithTag:VIEW_PARENT_TAG].frame.origin.y - 80, [self.view viewWithTag:VIEW_PARENT_TAG].frame.size.width, [self.view viewWithTag:VIEW_PARENT_TAG].frame.size.height);
[UIView animateWithDuration:0.3 animations:^{ [self.view viewWithTag:VIEW_PARENT_TAG].frame = selfframe;}];
[textField becomeFirstResponder];
}
}
@catch (NSException *exception)
{
NSLog(@"Error Occured in SignUpViewController :: textViewDidBeginEditing :: %@",[exception description]);
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
@try
{
if (textField == (UITextField *)[self.view viewWithTag:TEXTFIELD_MOBILE_TAG])
{
CGRect selfframe = CGRectMake([self.view viewWithTag:VIEW_PARENT_TAG].frame.origin.x, [self.view viewWithTag:VIEW_PARENT_TAG].frame.origin.y + 80, [self.view viewWithTag:VIEW_PARENT_TAG].frame.size.width, [self.view viewWithTag:VIEW_PARENT_TAG].frame.size.height);
[UIView animateWithDuration:0.3 animations:^{ [self.view viewWithTag:VIEW_PARENT_TAG].frame = selfframe;}];
[textField resignFirstResponder];
}
}
@catch (NSException *exception)
{
NSLog(@"error Occured in SignUpViewController :: textViewDidEndEditing :: %@",[exception description]);
}
}
问题内容: 请向我解释有关软键盘的问题。例如,我的活动,对话框片段或片段活动(无论如何)上都有一个EditText。这里是: 当它第一次显示时,我没有看到软键盘,必须按下editText才能获得焦点,然后出现键盘。另一个活动有所不同,当它出现在屏幕上时,将在没有任何帮助的情况下加载键盘。我认为 表示EditText将被聚焦并且键盘将出现,但是我错了。 我应该如何管理哪个组件将获得焦点,键盘将 自动
所以我手头有一个非常奇怪的问题,数小时的搜索没有提供任何信息。 我有一个包含uitextfield的uiview。现在,该视图最初位于可见屏幕之外,坐标为x=-500,y=-500。 然而,在响应按钮按下此视图动画和移动到屏幕的中心。 现在,每当我点击作为此视图子视图的uitextfield时。此视图会在屏幕外移动回其原始坐标。 我已经疯狂地检查了我的代码,一旦它进入,就没有任何东西会再次将视图移
问题内容: 我一直在尝试使此scrollview滚动,但这样做没有任何运气。我尝试了多种修复程序,但似乎无法正常工作。我希望能够在选择一个编辑框并且键盘占据一半屏幕的情况下滚动浏览我的页面。这样,我可以导航到其余的编辑框和页面底部的接受按钮,而不必每次都手动隐藏键盘。 这是我的xml代码: (请有人帮我弄清楚这件事,它使我发疯!!)。我还要提及的是,我曾与遇到类似问题的人一起尝试过大多数修复程序,
问题内容: 我有一个输入活动。初始化活动后,将显示Android键盘。在用户集中输入之前,键盘如何保持隐藏状态? 问题答案: 我认为以下可能有效 我以前已经将它用于此类事情。
问题内容: 我正在使用Swift在iOS上进行编程,并且正在使用此代码移动,但是它不起作用。我正确调用了该函数,但是文本字段没有移动。我正在使用自动版式。 问题答案: 现有答案有一些改进。 首先, UIKeyboardWillChangeFrameNotification 可能是最好的通知,因为它处理的不仅是显示/隐藏,还包括由于键盘更改(语言,使用第三方键盘等)和旋转引起的更改(但下面的注释说明
是否隐藏聊窗键盘区域预览图片长图、GIF标识 /** 是否隐藏聊窗键盘区域预览图片长图、GIF标识 @param isHidden 是否隐藏(默认显示) */ [Ntalker ntalker_isHiddenLongImageOrGifLogo:NO];