我有一个UITextView供用户输入som文本。当使用:
调用UITextView时[textView becomeFirstResponder];
我添加了一个rightBarButtonItem,它允许用户通过以下方式解雇UIKeyboard:
[textView resignFirstResponder];
我想知道我是否可以连接UIKeyboard的返回键来执行某些操作,但也可以自行解除它。动作是保存添加到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。
提前致谢!
答案 0 :(得分:2)
对于UITextView,您需要实现UITextViewDelegate并使用该方法:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
检查文本参数,如果它等于“\ n”,则可以关闭键盘。
编辑:正在讨论TextView,请保留以下内容以防万一。
将您的控制器设置为UITextField的委托。然后执行:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
在这种方法中,您可以辞职第一响应者。
UITextField也应该自动启用Return键。