【问题标题】:UITextview - UIKeyboard dismissUITextview - UIKeyboard 关闭
【发布时间】:2013-01-09 10:31:45
【问题描述】:

当我在UITextView 中时,我必须在输入“完成”按钮时关闭UIKeyboard

注意:我用UITextView 尝试过。它工作正常,我想在 UITextview 中实现相同的概念。我试过了

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

方法,但这有问题。

这可能吗?

【问题讨论】:

  • 找不到你。你已经用 UITextView 尝试过,现在你想用 UITextView 来实现?

标签: ios uitextview uikeyboard


【解决方案1】:

斯威夫特:

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    if text == "\n" {
        theTextView.resignFirstResponder()
        return false
    }
    return true
}

【讨论】:

    【解决方案2】:

    UITextView 没有完成按钮的选项,因为它需要有返回按钮。您可以按下返回按钮,但实际上并不推荐。编辑 UITextView 时关闭键盘的推荐方法是在主视图或其他元素上点击手势识别器。

    【讨论】:

      【解决方案3】:

      使用下面的代码,可能对你有用:)

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

      【讨论】:

        【解决方案4】:

        Ivan Alek 是对的,UITextView 需要返回按钮才能将光标移动到下一行。您可以在键盘上添加视图并从按钮关闭键盘。像这样:

        UIToolbar       *toolbar    = [[[UIToolbar       alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)] autorelease];
        UIBarButtonItem *item2      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeKeyboard)] autorelease];
        UIBarButtonItem *item1      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];
        
        [toolbar setItems:[NSArray arrayWithObjects:item1 , item2, nil]];
        [textView setInputAccessoryView:toolbar];
        

        然后在closeKeyboard 方法中,您可以辞职第一响应者。

        希望这会有所帮助。

        干杯!

        【讨论】:

          【解决方案5】:

          在键盘的辅助视图上添加完成按钮并使用

          实现完成方法
            [textView resignFirstResponder];
          

          别忘了为 textView 设置委托。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-09-09
            • 1970-01-01
            • 2014-12-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-22
            相关资源
            最近更新 更多