我想使用 关闭带有文本字段的键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
,但我需要对文本视图执行相同操作,所以我将使用- (BOOL)textViewShouldReturn:(UITextView *)textView {
. 是否可以将它们放在同一个 AppDelegate 中?
谢谢你。
我想使用 关闭带有文本字段的键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
,但我需要对文本视图执行相同操作,所以我将使用- (BOOL)textViewShouldReturn:(UITextView *)textView {
. 是否可以将它们放在同一个 AppDelegate 中?
谢谢你。
是的,您可以有两个代表
@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>
协议 UITextViewDelegate没有,像这样。
- (BOOL)textViewShouldReturn:(UITextView *)textView {
UITextViewDelegate 协议,
编辑 1:
按钮按下事件以隐藏键盘。
-(IBAction) yourButtonPressed:(id)sender;{
for(UIView *v in self.view.subviews){
if([v isKindOfClass:[UITextField class]] || [v isKindOfClass:[UITextView class]]){
if([v isFirstResponder]){
[v resignFirstResponder];
break;
}
}
}
}
只需从您的 viewController 订阅委托,并确保将这些对象上的委托设置为您的 viewController。
。H
@interface YourViewController : UIViewController <UITextFieldDelegate, UITextViewDelegate>
.m
someTextField.delegate = self;
someTextView.delegate = self;
从它的声音来看,您只需要绑定到 textField 和 textView 的操作。创建一个 IBAction 并将其绑定到您想要的内容。然后您可以从该 IBAction 中退出FirstResponder。
将此操作用于您的 textField 和 textView
- (IBAction)lowerTheText:(id)sender
{
[sender resignFirstResponder];
}
我不完全理解您的问题...基本上您将执行以下操作:
UITextFieldDelegate
andUITextViewDelegate
实现代表的方法,你需要/想要
resignFirstResponder / textField / textView 的 endEditing,无论你想要什么
是的,使用 UITextView 很棘手。正如我在书中所说...
http://www.aeth.com/iOSBook/ch23.html#_uitextview
...在 iPad 上,不会出现关闭键盘的问题,因为用户可以使用键盘右下角的按钮将其关闭。所以这只剩下iPhone。您通常会有一个界面,例如有一个完成按钮或类似的按钮。例如,看看 Notes 应用程序是如何解决这个问题的。
这个过程本身是一样的:调用endEditing:
superview,无论谁是第一响应者,都将不再是第一响应者,键盘将退休。
是的,您可以在同一个应用程序中使用 textfield 委托和 textview 委托。
文本域:
@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>
// This allocates the textfield and sets its frame (or) you can use interfaceBuild
UITextField *textField = [[UITextField alloc] initWithFrame:
CGRectMake(20, 50, 280, 30)];
textField.delegate=self;
// This method enables or disables the processing of return key
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder]; // this is event for hide keyboard.
return YES;
}
文本视图:
// init
UITextView *textView = [[UITextView alloc] initWithFrame:
CGRectMake(20, 50, 280, 30)];
- (void)textViewDidChangeSelection:(UITextView *)textView
{
[textField resignFirstResponder]; // this is event for hide keyboard.
}