使用textField和textView使键盘消失

时间:2013-05-06 17:58:46

标签: ios uitextfield uitextview

我想使用文本字段关闭键盘 - (BOOL)textFieldShouldReturn:(UITextField *)textField {,但我需要对文本视图执行相同操作,因此我将使用- (BOOL)textViewShouldReturn:(UITextView *)textView {。是否可以将它们放在同一个AppDelegate中?

谢谢。

5 个答案:

答案 0 :(得分:1)

是的,你可以有两个代表

@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>

不幸的是

协议UITextViewDelegate 没有,就像这样。

- (BOOL)textViewShouldReturn:(UITextView *)textView {


UITextViewDelegate协议enter image description here

编辑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;
            }
        }
    }

}

答案 1 :(得分:0)

只需从viewController订阅委托,并确保将这些对象的委托设置为viewController。

·H

@interface YourViewController : UIViewController <UITextFieldDelegate, UITextViewDelegate>

的.m

someTextField.delegate = self;
someTextView.delegate = self;

从它的声音中你只需要绑定textField和textView的动作。创建一个IBAction并将其与您想要的结合起来。然后你可以从那个IBAction resignFirstResponder。

对textField和textView

使用此操作
- (IBAction)lowerTheText:(id)sender 
{
    [sender resignFirstResponder];
}

答案 2 :(得分:0)

我不完全理解你的问题...... 基本上你会做以下事情:

  • 在您的网站中实施UITextFieldDelegateUITextViewDelegate viewController
  • 实现该委托的方法,您需要/想要

  • resignFirstResponder / endEditing textField / textView,其中 你想要吗

答案 3 :(得分:0)

是的,使用UITextView很棘手。正如我在书中所说的那样......

http://www.apeth.com/iOSBook/ch23.html#_uitextview

...在iPad上,不会出现解除键盘的问题,因为用户可以使用键盘右下角的按钮将其解除。所以这只留下了iPhone。您通常会有一个界面,以便有一个完成按钮或类似按钮。例如,看看Notes应用程序如何解决这个问题。

过程本身是一样的:在超级视图上调用endEditing:,无论谁是第一响应者都将停止作为第一响应者,键盘将退出。

答案 4 :(得分:0)

是的,您可以在同一个应用程序中使用textfield delegate和textview委托。

的TextField:

@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;
}

的TextView:

// init
 UITextView *textView = [[UITextView  alloc] initWithFrame:
       CGRectMake(20, 50, 280, 30)]; 

 - (void)textViewDidChangeSelection:(UITextView *)textView
{
 [textField resignFirstResponder]; // this is event for hide keyboard.
}