UIKeyboard 返回按钮操作不同于 UITextView resignFirstResponder
Posted
技术标签:
【中文标题】UIKeyboard 返回按钮操作不同于 UITextView resignFirstResponder【英文标题】:UIKeyboard return button action different from UITextView resignFirstResponder 【发布时间】:2011-07-14 13:40:24 【问题描述】:我有一个 UITextView 供用户输入 som 文本。当 UITextView 被调用时:
[textView becomeFirstResponder];
我添加了一个 rightBarButtonItem,它允许用户通过以下方式关闭 UIKeyboard:
[textView resignFirstResponder];
我想知道是否可以连接 UIKeyboard 的返回键来执行某些操作,但也可以自行关闭它。 Action是保存一些添加到textView的数据。
那么如何实现动作,两者都调用 resignFirstResponder 但做不同的事情。
这是我使用的代码。
-(void)viewDidLoad
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]
initWithTitle:@"Cancel"
style:UIBarButtonItemStyleBordered
target:self action:@selector(cancelEditing)] autorelease];
- (void)textViewDidEndEditing:(UITextView *)textview
[self saveSomeData];
- (void)cancelEditing
[commentTextView resignFirstResponder];
这可能我明白 resignFirstResponder 在这两种情况下也会调用 textViewDidEndEditing。
提前致谢!
【问题讨论】:
你在顶部交替使用 textView 和 textField,我看到更多 textView 的引用,是我们指的吗? @GradyPlayer 抱歉,是的,我的意思是 UITextView。 【参考方案1】:对于 UITextView 你需要实现 UITextViewDelegate 并使用方法:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
检查文本参数,如果等于“\n”,则可以关闭键盘。
编辑:正在讨论 TextView,保留在下方以防万一。
将您的控制器设置为 UITextField 的委托。然后执行:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
通过这种方法,您可以辞职第一响应者。
UITextField 也应该自动启用 Return 键。
【讨论】:
以上是关于UIKeyboard 返回按钮操作不同于 UITextView resignFirstResponder的主要内容,如果未能解决你的问题,请参考以下文章
UIButton iOS 7 跟随 UIKeyboard 动画