当我按完iOS时,textview键盘不会辞职

时间:2015-08-03 13:12:44

标签: ios objective-c uitextview uikeyboard resignfirstresponder

我有一个textview,当我按完后,textview开始一个新行。

我已经实现了这些方法并添加了所有代理

jQuery(document).ready(function() {
   function sfmenuToggle() {
      if ($(window).width() > 768) {
          $('#sfmenu').removeClass( "nav navbar-nav" )
                      .addClass('sf-navbar sf-menu');
      }
      if ($(window).width() < 768) {
          $('#sfmenu' ).addClass( "nav navbar-nav" )
                       .removeClass( "sf-navbar sf-menu" );
      }
    }
    // on window resize
    $(window).resize(function(){
        sfmenuToggle();
    });
    // on page load
    sfmenuToggle();
});

我将键盘返回键设置为在属性检查器中完成。 我希望键盘上的完成键可以让第一响应者辞职,但它似乎无法正常工作。

@property (nonatomic, strong) IBOutlet UITextView *textField;

-(void)textViewDidEndEditing:(UITextView *)textView //was UITextField
{
    [self.textField resignFirstResponder];
}

- (BOOL)textFieldShouldReturn:(UITextView *)textField{

    [textField resignFirstResponder];
    return YES;

}

如何添加这两个语句以便它们能够正常运行?

2 个答案:

答案 0 :(得分:3)

添加委托UITextViewDelegate

@property (nonatomic, strong) IBOutlet UITextView *textField;

在viewDidLoad

中写下这一行
textField.delegte = self;

//添加下面的委托方法[代码在Swift中。请找到obj-c方法并编写逻辑,因为我有]

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

    if([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }
    if (textField.text.length >= 300) {
        return NO;
    }
    return YES;
}

答案 1 :(得分:2)

转到故事板,然后选择文本字段并设置委托,并在.h文件中确认UITextFieldDelegate协议

希望它有所帮助。