Iphone 使用UITextView时,如何对键盘上的“完成”按钮作出反应?
UITextView不从UIControl继承,因此不可能存在addTarget:forControlEvent:方法。我曾经注册一个操作方法,以便在发生uicontrol事件编辑DiEndonext时退出第一响应者Iphone 使用UITextView时,如何对键盘上的“完成”按钮作出反应?,iphone,Iphone,UITextView不从UIControl继承,因此不可能存在addTarget:forControlEvent:方法。我曾经注册一个操作方法,以便在发生uicontrol事件编辑DiEndonext时退出第一响应者 如何使用UITextView实现这一点?是否有一些代理+协议我必须执行,这样我才能使键盘离开?是UITextView有一个代理协议你应该执行。委托协议自然命名为UITextViewDelegate。通过浏览文档,您应该注意到存在一种模式;对于具有委托协议的任何类Foo,协议始终命名
如何使用UITextView实现这一点?是否有一些代理+协议我必须执行,这样我才能使键盘离开?是
UITextView
有一个代理协议你应该执行。委托协议自然命名为UITextViewDelegate
。通过浏览文档,您应该注意到存在一种模式;对于具有委托协议的任何类Foo
,协议始终命名为foodegate
,没有例外
现在,正如James指出的那样,您可以使用UITextView
s委托截取文本更改并关闭键盘。但是,我不鼓励您这样做,因为它违反了人机界面准则。UITextView
用于编辑包含多行文本的文本,截取enter键表示不建议换行
如果您想要一个只有一行文本的文本字段,或者需要按enter键退出,则应改用UITextField
,该字段还具有委托协议UITextField delegate
。此协议有一种方法可满足您的需要:
-(BOOL)textFieldShouldReturn:(UITextField*)textField {
[textField resignFirstResponder];
return NO;
}
这一点很好,但是当您不能使用ENTER键进行此操作时,如何正式完成对UITextView的编辑?在我的例子中,enterkex作为DONE按钮显示为蓝色。如果我将其更改为Enter键,那么如何关闭该键盘?您可以使用
-[UITextView resignFirstResponder]
关闭键盘。只需使用返回键以外的其他用户操作即可。您可以在导航栏中添加“完成”按钮,或在UITextField
或UITextField
的inputView
上添加“完成”按钮。例如,在编辑表单时,Safari使用该视图在键盘上方添加额外控件。更正:您应该使用inputAccessoryView
在默认键盘上方添加视图inputView
用于一起替换默认键盘。嘿,那是Cooool人,从来没有听说过inputAccessoryView!!!这是我现在最喜欢的UIKit功能!凉的