![]() |
玩命的大象 · 华东实习KING的个人空间-华东实习KING ...· 1 年前 · |
![]() |
任性的炒面 · “遇见美好艺术·发现国际璧山”匈牙利当代艺术 ...· 1 年前 · |
![]() |
痴情的眼镜 · 《送你一朵小红花》电影同名主题曲与剧情解析 ...· 2 年前 · |
![]() |
高大的小熊猫 · 皮皮鲁和鲁西西的罐头小人观后感 - 抖音· 2 年前 · |
当我尝试在iPhone应用程序(
UITextfield
)中编辑文本时,它会自动更正我的输入。
你能告诉我怎样才能禁用它吗?
您可以使用
UITextInputTraits
协议来实现此目的:
myInput.autoCorrectionType = UITextAutocorrectionTypeNo;
有关更多详细信息,请参阅 here 。
UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;
Interface Builder也有一个下拉字段来禁用此功能。由于您更有可能在界面构建器中创建文本字段,请在那里查找它。你可以在“更正”旁边的属性检查器中找到它。
+ (void)disableAutoCorrectionsForTextfieldsAndTextViewGlobally {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
struct objc_method_description autocorrectionTypeMethodDescription =
protocol_getMethodDescription(@protocol(UITextInputTraits),
@selector(autocorrectionType), NO, YES);
IMP noAutocorrectionTypeIMP_TEXT_FIELD =
imp_implementationWithBlock(^(UITextField *_self) {
return UITextAutocorrectionTypeNo;
IMP noAutocorrectionTypeIMP_TEXT_VIEW =
imp_implementationWithBlock(^(UITextView *_self) {
return UITextAutocorrectionTypeNo;
class_replaceMethod([UITextField class], @selector(autocorrectionType),
noAutocorrectionTypeIMP_TEXT_FIELD,
autocorrectionTypeMethodDescription.types);
class_replaceMethod([UITextView class], @selector(autocorrectionType),
noAutocorrectionTypeIMP_TEXT_VIEW,
autocorrectionTypeMethodDescription.types);
}
你也可以在故事板中选择“属性检查器”并在“更正”下选择:“默认”、“是”和“否”。
在SwiftUI中,可以使用
.disableAutocorrection(true)
修改器。
Hiere是一个真实的例子:
VStack {
TextField("title", text: $LoginModel.email)
.autocapitalization(.none)
.disableAutocorrection(true)
.foregroundColor(.white)
}