- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用我在这里找到的脚本在文本字段下实现自动完成功能:
http://www.raywenderlich.com/336/how-to-auto-complete-with-custom-values
但它按应有的方式运行脚本,然后应用程序崩溃了,没有给我任何反应(只是 TUAppDelegate 中的 exc_bad_access )
不,我还有其他一些键盘方法,所以不知道它们是否冲突。
文本字段声明如下:
mytextfield_textfield = [[UITextField alloc] initWithFrame:CGRectMake(60, 57, 145, 20)];
mytextfield_textfield.borderStyle = UITextBorderStyleNone;
mytextfield_textfield.font = [UIFont fontWithName:@"NeoSans" size:14];
mytextfield_textfield.placeholder = @"Enter something";
mytextfield_textfield.text = @"";
mytextfield_textfield.secureTextEntry = NO;
mytextfield_textfield.autocapitalizationType = UITextAutocapitalizationTypeNone;
mytextfield_textfield.autocorrectionType = UITextAutocorrectionTypeNo;
mytextfield_textfield.keyboardType = UIKeyboardTypeDefault;
mytextfield_textfield.returnKeyType = UIReturnKeyDone;
mytextfield_textfield.clearButtonMode = UITextFieldViewModeWhileEditing;
mytextfield_textfield.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
mytextfield_textfield.delegate = self;
[self.view addSubview:mytextfield_textfield];
然后下面的自动完成 View 作为 ScrollView 而不是表格 View (另一个原因)。但现在还没有使用。
那么我已经有了这些方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
if(touch.phase == UITouchPhaseBegan) {
[mytextfield_textfield resignFirstResponder];
}
[mytextfield_textfield resignFirstResponder];
myTableView.userInteractionEnabled = YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
myTableView.userInteractionEnabled = NO;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[mytextfield_textfield resignFirstResponder];
myTableView.userInteractionEnabled = YES;
[self performSelector:@selector(AddAction:) withObject:nil] ;
return YES;
}
现在我实现了自动完成:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
autocompleteView.hidden = NO;
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring stringByReplacingCharactersInRange:range withString:string];
[self searchAutocompleteEntriesWithSubstring:substring];
myTableView.userInteractionEnabled = YES;
NSLog(@"ok") ;
return NO;
}
- (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring {
NSDictionary *dictionary = [[NSDictionary alloc] init ];
NSString *path = [[NSBundle mainBundle] bundlePath] ;
NSString *dictionary_path = [path stringByAppendingPathComponent:@"categorieslist2.plist"] ;
dictionary = [NSDictionary dictionaryWithContentsOfFile:dictionary_path] ;
for(id key in dictionary) {
NSLog(@"%@",key) ;
}
[dictionary release] ;
}
它输出 key 并从 NSlog 返回 OK,但随后崩溃了。知道为什么吗?
我只是做 NSLog,因为我想弄清楚为什么它不起作用
最佳答案
改变
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return YES;
}
关于iphone - Xcode 使用 textField shouldChangeCharactersInRange : crashes app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793087/
我试图在将价格和数量乘以文本字段后获得总值(value)。当数量为 10 或有任何两位或三位数字时,我没有得到值。这种方法一次只需要一个字符。 - (BOOL)textField:(UITextFie
我正在实现一个文本字段来输入用户密码。我正在尝试将存储密码的长度与用户输入的密码相匹配。当长度匹配时,我尝试验证密码。如果密码不匹配或长度大于存储值,那么我会尝试清除文本字段(else-if),但最后
我在警报 View 中有一个名为 phoeNumberTF 的文本字段。 phoneNumberTF.delegate = self; UIAlertController *alert = [UIAl
我有一个简单的 UItextField。在这一个我想只有 4 个数字(字符串)。如果此字符串不等于另一个字符串,则应清除输入(完美运行)。但在 shouldChangeCharactersInRang
我正在使用以下 textfield delegate 来验证用户输入。 假设 currentTotal 等于 30.00 美元,每当用户输入 两次 等于或大于 currentTotal 并且我正在尝试
如果我实现方法shouldChangeCharactersInRange范围值和文本大小之间存在某种不一致。当我的文本字段只有一个普通字母(如“a”)并按退格键时,要替换的文本是一个空字符串,text
我有必须调用的方法来检查手机号码范围和其他格式。但是这个方法没有被调用:( -(BOOL)textField:(UITextField *)textField shouldChangeCharacte
有时,当我只点击一个字符时,shouldChangeCharactersInRange 会被调用两次。 例如,我输入“avion par c”,程序被调用并添加我第二个“c”结果是“avion par
用解决方案更新了下面的代码。 这适用于您想要的任意多个字段。 它还修复了该方法返回 false 时文本框卡住的问题。 下面这行是引导方法在返回 false 后返回 true 的内容。 newStrin
我正在使用rangeofString和textfield:shouldChangeCharactersinRange:来限制将在文本字段中有效的击键类型。 -(BOOL) textField:(UIT
问题: 文本字段不接受字符。 shouldChangeCharactersInRange 未针对所有 3 个文本字段调用。 我有 3 个委托(delegate)类的实现,就像在 main 中一样。所有
是否可以在两个不同的位置设置 textFieldShouldReturn 和 shouldChangeCharactersInRange。 目前我在一个单独的文件中使用 shouldChangeCha
您好,我想在用户在文本字段中输入文本时验证电子邮件地址。当错误的电子邮件然后显示警报并返回否以留在电子邮件文本字段中时,它正在处理返回和文本字段结束编辑但不处理文本字段 shouldChangeCha
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementSt
我有一个 UITextField,带有一个清除按钮并启用了自动更正。如果我输入“Thg”,自动更正会提示“The”。现在,如果我按下清除按钮,textFieldShouldClear 会被调用,然后
我有一个表格 View 。在 cellForRowAtIndexPath 中,我有一个单元格,在该单元格中有 UITextField。我这样设置文本字段的委托(delegate):cell.textF
我有一个 UITextField,我正在尝试将其格式化为电话号码,但由于某种原因,我正在努力获取 UITextField 的第一个字母。 func textField(textField: UITex
这是我的代码: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range repl
我有一个 textField,用户可以在其中输入电子邮件地址。我想在输入文本成为有效电子邮件地址的那一刻激活提交按钮。 验证有效,但 shouldChangeCharactersInRange 中的代
我正在处理包含 4 个文本字段的注册页面。其中一个 text fields 用作 Picker-view,当用户 tap 它时,一个 picker-view 将弹出,其中包含可供选择的选项。 问题是我
我是一名优秀的程序员,十分优秀!