gpt4 book ai didi

添加 subview 时 iOS 奇怪的键盘隐藏行为

转载 作者:行者123 更新时间:2023-11-29 03:59:12 25 4
gpt4 key购买 nike

我有一个带有 UITextField 的 View ,并且需要在按下按钮时显示 UIDatePicker (它隐藏在键盘下方)。

我懒洋洋地实例化日期选择器,因为这使我能够更快地显示 View 。

这是与点击按钮相关的代码:

- (IBAction)hideKeyboard {
if (!self.datePicker) {
// UIDatePicker allocation and initialization
self.datePicker = ...
...
[self.view addSubview:self.datePicker];
}
[self.textField resignFirstResponder];
}

发生的情况是,这会干扰键盘隐藏动画。实际上根本没有动画。

我得到的另一个线索是,这不会发生在模拟器上,而只会发生在实际设备(iPhone 4S)上。

我该如何解决这个问题?

编辑:

将 datePicker 设置为 textField 的 inputView 并不能解决我的问题。

最佳答案

我可以向您推荐另一种解决方案,然后隐藏键盘并使用按钮来显示日期选择器。

如果我理解正确,您希望在用户点击文本字段时显示日期选择器,然后也许您在文本字段中设置日期。

UITextField 有一个属性

@property (readwrite, retain) UIView *inputView

如果将 inputView 属性设置为日期选择器,则文本字段将显示日期选择器而不是键盘(甚至像键盘一样动画)。

当然,这些值需要您自己获取并设置为文本字段。

编辑原因:问题已编辑

我不知道为什么将日期选择器设置为输入 View 没有帮助。无论如何,如果您不希望显示键盘并通过添加 subview 来显示日期选择器,您可以使用 UITextField 的以下委托(delegate)方法

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

实现委托(delegate)方法。在该方法中,只需将 pickerview 作为 subview 添加到您的 View 中,并返回 NO 即可不显示键盘。

编辑原因:好评

您不使用文本字段有什么原因吗?如果没有,我会使用它,因为它使一切变得更容易。如果您出于某种原因想使用 UILabel,那么您可以观看键盘通知。键盘什么时候消失然后显示日期选择器。

有关键盘通知,请参阅此处,示例代码很好地解释了,UIKeyboardDidHideNotification 应该对您有帮助

http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

关于添加 subview 时 iOS 奇怪的键盘隐藏行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16101745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com