【问题标题】:UIText view delegate issueUITextview 委托问题
【发布时间】:2012-04-01 23:33:15
【问题描述】:

我想从 UItextview 退出键盘。如何以编程方式实现 UItextView 委托方法。

【问题讨论】:

  • 你到底想要什么??请具体..
  • 无法理解您在这里要做什么。
  • 如何实现为我的应用全局声明的委托方法?在我的应用程序中,点击返回时键盘没有退出。
  • 当光标移动时,我的所有文本字段都移到了上方,但 textview 没有,它隐藏在键盘后面

标签: iphone ios5 uitextviewdelegate


【解决方案1】:

如果你想让你的键盘在点击返回时退出,那么你必须写,实现这个方法....

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

if([text isEqualToString:@"\n"]) {
    [textView resignFirstResponder];
    return NO;
}

return YES;

}

复制粘贴即可……:)

【讨论】:

    【解决方案2】:

    确保声明支持UITextViewDelegate 协议。

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    
        if([text isEqualToString:@"\n"]) {
            [textView resignFirstResponder];
            return NO;
        }
    
        return YES;
    }
    

    【讨论】:

      【解决方案3】:

      您应该使用 UITextViewDelegate。你必须在你的类头中声明协议的使用,比如:

      @interface YourClass:NSObject<UITextViewDelegate>
      

      然后在您的 .m 中,您应该在某些时候将您的类设置为委托,例如:

      textView.delegate = self;
      

      然后,再次在您的 .m 中,您必须实现委托方法,特别是:

      textViewDidChange:
      

      您可以在http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html 阅读协议参考以了解更多信息。

      【讨论】:

        【解决方案4】:

        UITextview 没有特定的委托方法可以知道用户何时点击“返回” 所以你可以这样做

        //In .h File
        
        @interface BlahBlah : UIViewController <UITextViewDelegate>
          @property(nonatomic, retain) IBOutlet UITextView *myTextView;
        @end
        
        //In .m File
        @implementation BlahBlah
        
        @synthesis myTextView;
        
        //In some method, can be viewDidLoad OR viewDidAppear . your convenience ;) 
        {
           self.myTextView.delegate = self;
        }
        
        - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
        
                if([text isEqualToString:@"\n"]) {
                    [textView resignFirstResponder];
                    return NO;
                }
        
                return YES;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多