【问题标题】:Dismiss UITextField Keyboard With Swipe通过滑动关闭 UITextField 键盘
【发布时间】:2016-08-25 19:54:14
【问题描述】:

我正在尝试向下滑动键盘以将其关闭。我正在为我的键盘使用 UITextField。我见过类似的问题;但是,他们使用的是 UIScrollView/UITextView。用途:

scrollView.keyboardDismissMode = .Interactive

如何将它用于 UITextField?感谢您的帮助。

【问题讨论】:

    标签: ios swift keyboard uitextfield


    【解决方案1】:

    最简单的解决方案是使用滚动视图。只需在整个界面和繁荣后面放一个滚动视图,就可以了。这种架构有太多的优点,不能轻易拒绝。即使滚动视图不能正常滚动,用户也可以在键盘存在时使用它来滚动(以便能够看到整个界面)。更重要的是,它会滚动显示第一响应者自动 - 而且它会为您提供keyboardDismissMode

    【讨论】:

    • 感谢您的帮助。但是,这似乎不起作用。也许是因为我使用的是 UITableViewController。关于如何解决它的任何想法?
    • 表格视图滚动视图。
    【解决方案2】:

    UITextField 不是 UIScrollView 的子类,它没有任何此类属性。无论如何,有几个解决方案可以帮助您。

    1. Dismiss keyboard by tapping Return button:
    
    - (BOOL)textFieldShouldReturn:(UITextField *)textField {
          [self.view endEditing:YES];
    }
    
    1. 将 UISwipeGestureRecognizer 的实例添加到您的视图控制器 并关闭一个

      // 键盘滑动事件:

      @property (nonatomic, weak) IBOutlet UISwipeGestureRecognizer *swipeGesture;

    //在IB中设置其方向为UISwipeGestureRecognizerDirectionDown并连接IBAction:

    - (IBAction)gestureDidSwipe:(UISwipeGestureRecognizer *)gesture {
        if ([self.textField isFirstResponder]) {
            [self.textField resignFirstResponder];
        }
    }
    
    1. 创建一个 UITextField 类别并在键盘上方添加一个带有取消按钮的工具栏:

    @implementation UITextField (attachCancelItem)

    - (void)attachDismissToolBar {
        UIToolbar *keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, 40.0f)];
        keyboardToolbar.barStyle = UIBarStyleBlackTranslucent;
        UIBarButtonItem *spaceBarItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                                      target:nil
                                                                                      action:nil];
        UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:[NSString localizedStringFromKey:@"selectAddressElementScreenDoneButtonTitle"] style:UIBarButtonItemStyleDone target:self action:@selector(resignFirstResponder)];
    
        [keyboardToolbar setItems:[NSArray arrayWithObjects:spaceBarItem, spaceBarItem, spaceBarItem, item, nil]];
        keyboardToolbar.tintColor = [UIColor whiteColor];
        self.inputAccessoryView = keyboardToolbar;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-03-28
      • 1970-01-01
      • 2015-03-22
      • 2011-06-13
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多