我可以通过以下方式查看如何设置键盘的整体类型:
self.myTextView.keyboardType = UIKeyboardTypeDefault;
如何通过代码将默认键盘的模式从 ABC 切换到 123 并再次返回?基本上在用户点击@字符的那一刻(@符号在他们处于123模式时可用)我想将他们的键盘切换回ABC模式。
有任何想法吗?
我可以通过以下方式查看如何设置键盘的整体类型:
self.myTextView.keyboardType = UIKeyboardTypeDefault;
如何通过代码将默认键盘的模式从 ABC 切换到 123 并再次返回?基本上在用户点击@字符的那一刻(@符号在他们处于123模式时可用)我想将他们的键盘切换回ABC模式。
有任何想法吗?
您可以通过使用 UITextViewDelegate 来完成此操作。它允许您在 UITextView 中按下按键时拦截它们。这将允许您在用户按下某个键时切换键盘。为了恢复 UIKeyboardTypeDefault 键盘的默认状态,您需要将键盘类型更改为另一种,然后恢复为默认值。
在您的 ViewController.h 文件中,使其实现 UITextViewDelegate 协议:
@interface ViewController : UIViewController <UITextViewDelegate>
在 ViewController.m 的 ViewController 的 viewDidLoad 方法中,将 textField 的委托设置为视图控制器:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.myTextView.delegate = self;
}
最后,我们需要在输入时捕获键并适当地更改键盘。我们在 shouldChangeCharactersInRange: 方法中执行此操作。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if( [@"@" isEqualToString:text] )
{
NSLog( @"Toggling keyboard type");
textView.inputView = nil;
[textView resignFirstResponder];
[textView setKeyboardType:UIKeyboardTypeEmailAddress];
[textView becomeFirstResponder];
[textView reloadInputViews];
textView.inputView = nil;
[textView resignFirstResponder];
[textView setKeyboardType:UIKeyboardTypeDefault];
[textView becomeFirstResponder];
[textView reloadInputViews];
}
return YES;
}
所以我原本很困惑,以为你真的想改变键盘类型。现在我正在阅读您的评论,我意识到您实际上是想将键盘重置为显示字母的默认状态,而不是数字和特殊字符。上面的代码现在可以做到这一点。