在UITextView上以编程方式禁用iOS8 QuickType键盘
我试图更新iOS8的应用程序,它有一个聊天界面,但是新的Quicktype键盘隐藏了文本视图,所以我想以编程方式或在界面生成器中将其closures。
是否有可能或者只有用户可以在设备设置中closures它?
我知道有一个问题/答案,解决这个问题与UITextfield
,但我需要做一个UITextView
。
您可以禁用UITextView的键盘build议/自动完成/ QuickType,这可以阻止像4S这样的小屏幕上的文本,如本例所示
用以下行:
myTextView.autocorrectionType = UITextAutocorrectionTypeNo;
而且,如果你只想在特定的屏幕上进行这种操作,例如瞄准4S
if([[UIDevice currentDevice]userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; if (screenHeight == 568) { // iphone 5 screen } else if (screenHeight < 568) { // smaller than iphone 5 screen thus 4s } }
为了完整起见,我想补充一点,你也可以在Interface Builder
做到这一点。
要在UITextField
或UITextView
上禁用键盘build议 – 在“ Attributes Inspector
中将“ Correction
设置为“ No
。
我用下面的方法创build了一个UITextView类别类:
- (void)disableQuickTypeBar:(BOOL)disable { self.autocorrectionType = disable ? UITextAutocorrectionTypeNo : UITextAutocorrectionTypeDefault; if (self.isFirstResponder) { [self resignFirstResponder]; [self becomeFirstResponder]; } }
我希望有一个更清洁的方法。 此外,它假定自动更正模式是Default
,对于每个文本视图可能不总是正确的。
在Swift 2中:
myUITextField.autocorrectionType = UITextAutocorrectionType.No