我可以通过以下方式了解如何设置键盘的整体类型:
self.myTextView.keyboardType = UIKeyboardTypeDefault;
如何将默认键盘的模式从ABC切换到123并通过代码再次返回?基本上当用户点击@字符时(@符号在123模式下可用时)我想将键盘切换回ABC模式。
有什么想法吗?
答案 0 :(得分:4)
您可以通过使用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;
}
所以我最初感到困惑,并认为你真的想改变键盘类型。现在我正在阅读你的评论,我意识到你实际上想要将键盘重置为显示字母的默认状态,而不是数字和特殊字符。上面的代码就是这样做的。