我试图向下滑动键盘以解除它。我正在为我的键盘使用UITextField。我见过类似的问题;但是,他们使用的是UIScrollView / UITextView。用途:
scrollView.keyboardDismissMode = .Interactive
如何将其用于UITextField?谢谢你的帮助。
答案 0 :(得分:4)
最简单的解决方案是使用滚动视图。只需在整个界面和繁荣后面放置滚动视图,即可完成所有设置。这种架构有太多优点,不能轻易拒绝。即使滚动视图没有正常滚动,用户也可以在键盘存在时使用它滚动(以便能够看到整个界面)。更重要的是,它滚动显示第一个响应者自动 - 再加上它会给你keyboardDismissMode
。
答案 1 :(得分:1)
UITextField不是UIScrollView的子类,它没有任何此类属性。无论如何,有一些解决方案,可以帮助你。
1. Dismiss keyboard by tapping Return button:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self.view endEditing:YES];
}
将UISwipeGestureRecognizer的实例添加到视图控制器 并关闭
//通过滑动事件键盘:
@property(非原子,弱)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;
}