在输入附属视图中使用UITextField显示键盘。

9 浏览
0 Comments

在输入附属视图中使用UITextField显示键盘。

我有一个按钮A,当点击按钮A时,我希望键盘显示,并在inputAccessoryView中显示一个UITextField。是否有办法手动显示键盘并设置inputAccessoryView,而不需要初始时就有一个UITextField呢?谢谢。

0
0 Comments

问题的原因是在输入附件视图(input accessory view)中显示带有UITextField的键盘。解决方法是在UIViewController的实现中添加一些方法,并将_textField变量添加到接口中。

在viewDidLoad方法中,调用reloadInputViews方法;在canBecomeFirstResponder方法中,返回YES;在inputAccessoryView方法中,创建一个UITextField对象,并设置其属性;在textFieldShouldReturn方法中,调用resignFirstResponder方法来隐藏键盘。

最后,将_textField变量添加到接口中,并将UIViewController实现为UITextFieldDelegate协议。

这是目前最简单的实现方法,与键盘的显示和隐藏动画非常流畅。感谢反馈,很高兴知道这个方法仍然有用,并且仍然可以流畅地工作。

0
0 Comments

问题的出现原因:

无法在没有可以成为第一响应者的对象的情况下调出键盘。

解决方法:

方法一:

1. 创建一个UIView的子类,并在其中实现UIKeyInput协议。

2. 在.h文件中声明属性:NSString *text和UIView *inputAccessoryView。

3. 在.m文件中实现协议中的方法:canBecomeFirstResponder、hasText、insertText和deleteBackward。

4. 在需要调出键盘的地方调用becomeFirstResponder方法。

方法二:

1. 在viewDidLoad方法中注册键盘事件的通知。

2. 在viewWillAppear方法中设置textField的frame。

3. 在keyboardWillShowNotification方法中实现textField的动画,让其与键盘动画同步。

4. 在keyboardWillHideNotification方法中实现textField的动画,让其返回原来的位置。

5. 调用becomeFirstResponder方法来触发动画。

0
0 Comments

问题原因:在输入辅助视图(input accessory view)中显示带有UITextField的键盘的问题。解决方法:将一个隐藏的UITextField添加为视图的子视图,然后调用[textfield becomeFirstResponder]方法。

解决方法代码示例:

UITextField * randofield = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
[self.view addSubview:randofield];
randofield.hidden = YES;
[randofield becomeFirstResponder];

需要注意的是,UITextField必须作为视图的子视图才能实现该解决方法。

0