我可以将其视为iOS应用中的新手,
现在我有一点问题,在我添加的代码中
[myTextView becomeFirstResponder]
因为我希望键盘固定在屏幕上。
我碰巧在同一个屏幕上有一个actionSheet
,我注意到每当我打电话给行动表解除时,键盘也会在我不必打电话[myTextView resignFirstResponder]
时解散。这很烦人,因为当我关闭动作表时,我真的不想用它取消键盘,我希望键盘保留在屏幕上。
有人请向我解释一下,如果你知道一些解决方案,如果你愿意,我会很高兴。
谢谢!
答案 0 :(得分:0)
奇怪,我已经看到了,如果iOS需要隐藏UIKeyBoard
显示UIActionSheet
之类的东西,那么它会重新显示UIKeyBoard
,你可以做两件事进行测试,
1)寻找[myTextView resignFirstResponder]
并在那里设置断点,
2)如果您实施了UITextView
委托,- (void)textViewDidEndEditing:(UITextView *)textView
也会设置断点。
3)如果您在UIActionSheet
被解雇时发现光标进入断点,那么您需要纠正隐藏它的流程。
如果您仍然无法理解,可以
UIKeyBoard
在UIActionSheet
被解雇时[myTextView becomeFirstResponder]
重新展示。
答案 1 :(得分:0)
您可以在控制器的.m文件中使用私有本地类别
@interface UIActionSheet (NonFirstResponder)
@end
@implementation UIActionSheet (NonFirstResponder)
- (BOOL)canBecomeFirstResponder
{
return NO;
}
@end
它会将您的键盘保存在活动表上。但是当您尝试关闭操作表时,它将导致以
结尾的系统调用链[NSNotificationCenter postNotificationName:object:userInfo:]
[UIInputViewTransition postNotificationForTransitionStart]
这里我们得到UIKeyboardWillHideNotification,键盘由系统关闭。
因此,您只能在操作表按钮单击时将textView标记为第一响应者。但它可能会导致一些额外的UI转换。