我正在编写一个具有允许编辑的UITextView的应用程序。当用户第一次触摸UITextView时,键盘会出现,我想在用户再次触摸UITextView时缩回该键盘,例如我在textview中输入了一些数据,屏幕上仍然显示键盘,我点击了UITextView,这会导致键盘缩回。
有没有办法实现这个目标?
(我知道提供一个完成按钮并执行此操作,但我希望通过点击UITextView本身来实现这一点)
答案 0 :(得分:2)
顺便说一句,我建议你不要在iPhone上使用切换状态元素。在现实世界中使用它很容易。这就是为什么Apple应用程序都使用键盘上的“返回”键或完成按钮。
在您考虑的界面中,用户会发现自己关闭,然后意外地重新打开键盘大约10%或更多时间。这将使您的应用程序感到麻烦和片状。
答案 1 :(得分:1)
您应该为UITextView
致电resignFirstResponder
。假设您有一个IBOutlet
的文字视图:
@property (nonatomic, retain) IBOutlet UITextView *comment;
然后可以从[comment resignFirstResponder];
等调用touchesBegan
。
答案 2 :(得分:1)
你要找的是一个大的透明uibutton“overlapButton”,它始终位于uitextview的顶部。
当文本视图出现时,您将按钮设置为隐藏,以便您可以自由点击文本视图。
[overlapButton setHidden:YES];
点击文本视图时,键盘会出现,并且会调用textview委托中的以下方法:
-(BOOL)textViewShouldBeginEditing:(UITextView *)textView{
[overlapButton setHidden:NO];
}
在这里,您需要设置“overlapButton”可见,以便在键盘启动时,您可以触摸现在与textview重叠的按钮。在按钮操作上,您可以隐藏键盘:
-(IBAction) overlapButtonTapped{
[myTextView resignFirstResponder];
}
在第一个响应者辞职后,将调用以下方法:
-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
[overlapButton setHidden:YES];
}
为按钮设置相应的隐藏属性后(如上所示),您再次有一个“清晰”的文本视图,您可以再次点击以显示键盘..等等..
干杯。
答案 3 :(得分:0)
我同意你的意见。我看到过这种情况!我也不建议这样做!如果不是不可能编辑/复制/粘贴手势,它也会使编辑变得非常困难。另一方面,如果男人仍然想要这个......:P我在其他帖子中提供的代码是一种享受!欢呼声。