- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 iOS 8 之前一切正常。但是,当用户点击文本字段控件时,会直接出现在 UIKeyboardWillHideNotification 通知中登录控制台-找不到支持type 4 for keyboard iPhone-PortraitTruffle-NumberPad的keyplane;使用 675849259_PortraitTruffle_iPhone-Simple-Pad_Default
这是代码——
`
In view did load
- (void)viewDidLoad {
[super viewDidLoad];
self.txtMobNumber.delegate = self;
self.txtMobNumber.keyboardType = UIKeyboardTypeNumberPad;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:@"UIKeyboardWillShowNotification" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:@"UIKeyboardWillHideNotification" object:nil];
}
notification callback
- (void)keyboardWillShow:(NSNotification *)notification
{
// Save the height of keyboard and animation duration
NSDictionary *userInfo = [notification userInfo];
CGRect keyboardRect = [userInfo[@"UIKeyboardBoundsUserInfoKey"] CGRectValue];
[UIView beginAnimations:@"moveKeyboard" context:nil];
float height = keyboardRect.size.height-60;
self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y - height, self.view.frame.size.width, self.view.frame.size.height);
[UIView commitAnimations];
// [self setNeedsUpdateConstraints];
}
// Reset the desired height
- (void)keyboardWillHide:(NSNotification *)notification
{
// Reset the desired height (keep the duration)
NSDictionary *userInfo = [notification userInfo];
CGRect keyboardRect = [userInfo[@"UIKeyboardBoundsUserInfoKey"] CGRectValue];
[UIView beginAnimations:@"moveKeyboard" context:nil];
float height = keyboardRect.size.height-60;
self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + height, self.view.frame.size.width, self.view.frame.size.height);
[UIView commitAnimations];
}
`
最佳答案
这可能与模拟器设置有关,请参阅菜单“硬件 > 键盘 > 连接键盘硬件”。如果此选项打开,您将获得 UIKeyboardWillHideNotification
,但不会获得 UIKeyboardWillShowNotification
。
关于objective-c - UIKeyboardWillShowNotification 不调用,只有 UIKeyboardWillHideNotification 在 iOS 9 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32817089/
我想创建一个与 iPhone 的短信应用程序(消息)完全相同的 ChatView。我正在以编程方式执行此操作,并尝试使用键盘向上移动 textView 。我想在 UIKeyboardWillShowN
这是我的应用程序的流程。第一 View -> 第二 View -> 第三 View 在第三个 View 中,当我单击 tableView 的任何一行时,会显示一个 UIView,它有一个仅接受数字的
这是我的代码: -(void)setViewMovedUp:(BOOL)movedUp { [UIView beginAnimations:nil context:NULL]; [UI
我不知道为什么动画在 UIKeyboardDidShowNotification 事件中工作正常但在 UIKeyboardWillShowNotification 事件中不工作。 代码如下所示: 注释
我检测到键盘何时会显示以下代码。但是,当我使用 pushViewController 推送到另一个屏幕并在该屏幕中打开键盘时,将调用 keyboardWillShow!这真的正确吗? [[NSNoti
我正在使用 UIKeyboardWillShowNotification 和 UIKeyboardWillHideNotification 来处理键盘。 这是显示键盘时调用的函数: -(void) k
我在主视图 Controller 的 viewWillAppear:animated 中添加了以下代码。 [[NSNotificationCenter defaultCenter] addObserv
下面的代码(抱歉太长了)在 iOS 4.3(也可能是其他版本)下显示了一个奇怪的行为。在这个例子中,有三个 UITextField具有三个不同大小的键盘。如果您开始编辑一个文本字段,然后触摸“返回”关
我试图在出现键盘时向上滚动我的 TextView 。我正在尝试按照 Apple 自己的教程在 https://developer.apple.com/library/ios/documentation
在我的 iOS 应用程序中,我有几个可以处理用户输入的 UIElement:文本字段、可编辑的 webview 等。每次我在键盘上向这些 UIElement 中写入内容时(显然)会出现。在它发生之前,
我正在使用 UIKeyboardWillShowNotification 来了解何时显示键盘并调整我的 UIWebView 的大小,以便它不会隐藏在键盘后面。 奇怪的是,当我在 NSNotificat
我有一个项目,其中包含一个 UIScrollView 和其中的许多 UITextField。 我第一次选择 UITextField 时,调用了 UIKeyboardWillShowNotificati
我发现 UIKeyboardWillShowNotification和 UIKeyboardDidShowNotification当未停靠/拆分键盘出现在 iOS 5 中时不会生成.例如,点击文本字段
我在 UIView 上有多个文本字段。 我放弃了 textFieldShouldBeginEditing 方法中的先前文本字段,其中执行了以下事件序列 收到与隐藏前一个字段的键盘的字段相对应的 UIK
我尝试在应用程序中使用自定义键盘,但在尝试将其限制为一个特定的 UITextField 时遇到问题。 我的代码基于 this Xcode project (最初发现于 this blog )。该代码将
我注意到一个令人惊讶的行为:当我在收到 UIKeyboardWillShowNotification 或 UIKeyboardWillHideNotification 后更改 UIView 的框架时,
我正在使用以下代码根据键盘移动为 View 的位置设置动画。该代码在 iOS 7 下运行良好,但在 iOS 8 下会导致奇怪的行为: [[NSNotificationCenter defaultCen
在 iOS 11 beta 7 上测试我的应用程序 - 如果我的 UIViewController. 代码看起来像这样(从 iOS7 开始工作): - (void)handleNotification
我的 View 中有几个 UITextField(每个都在一个 UITableViewCell 中)。当从任何文本字段触发键盘时,我需要制作一些动画,主要是更改 UITableView 的框架。当键盘
在最近更新 Xcode 之后,这段以前可以工作的代码不再工作了。大多数 Selector(":") 都具有自动更正功能,但以下代码除外: override func viewDidLoad() {
我是一名优秀的程序员,十分优秀!