您的代码,特别是辞职文本字段的第一响应者-textFieldShouldReturn
很好。
我认为您可能没有正确连接,可能忘记设置您的UITextField
.
我最近的一个项目的一个片段,我在两个字段中使用了 Next 返回键和 Done 返回键,从第一个切换到第二个,然后关闭第二个(它有一个 Done 返回键):
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
if(textField == self.nameTextField)
[self.descriptionTextField becomeFirstResponder];
return YES;
}
关于UITextView
(您的问题在标题中特别提到UITextField
,但您的代码同时具有 textfield 和 textview),您将需要以不同的方式辞去第一响应者的职务。
由于文本视图用于较长的文本输入,包括多行,您还可以使用回车键进行换行,因此您必须检测用户何时更改文本。如果他们尝试输入换行符,则在该点手动辞职。示例如下:
- (BOOL)textView:(UITextView *)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
[textView resignFirstResponder];
return YES;
}