【发布时间】:2016-08-25 19:54:14
【问题描述】:
我正在尝试向下滑动键盘以将其关闭。我正在为我的键盘使用 UITextField。我见过类似的问题;但是,他们使用的是 UIScrollView/UITextView。用途:
scrollView.keyboardDismissMode = .Interactive
如何将它用于 UITextField?感谢您的帮助。
【问题讨论】:
标签: ios swift keyboard uitextfield
我正在尝试向下滑动键盘以将其关闭。我正在为我的键盘使用 UITextField。我见过类似的问题;但是,他们使用的是 UIScrollView/UITextView。用途:
scrollView.keyboardDismissMode = .Interactive
如何将它用于 UITextField?感谢您的帮助。
【问题讨论】:
标签: ios swift keyboard uitextfield
最简单的解决方案是使用滚动视图。只需在整个界面和繁荣后面放一个滚动视图,就可以了。这种架构有太多的优点,不能轻易拒绝。即使滚动视图不能正常滚动,用户也可以在键盘存在时使用它来滚动(以便能够看到整个界面)。更重要的是,它会滚动显示第一响应者自动 - 而且它会为您提供keyboardDismissMode。
【讨论】:
UITextField 不是 UIScrollView 的子类,它没有任何此类属性。无论如何,有几个解决方案可以帮助您。
1. Dismiss keyboard by tapping Return button:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self.view endEditing:YES];
}
将 UISwipeGestureRecognizer 的实例添加到您的视图控制器 并关闭一个
// 键盘滑动事件:
@property (nonatomic, weak) IBOutlet UISwipeGestureRecognizer *swipeGesture;
//在IB中设置其方向为UISwipeGestureRecognizerDirectionDown并连接IBAction:
- (IBAction)gestureDidSwipe:(UISwipeGestureRecognizer *)gesture {
if ([self.textField isFirstResponder]) {
[self.textField resignFirstResponder];
}
}
@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;
}
【讨论】: