我在应用程序上创建,我需要输入价格。客户需要自己的设计键盘,所以我开发了以下键盘。它完美无缺。问题是当文本大于UITextField
时,它会显示点。我搜索谷歌和SO但没有找到任何东西。
how to avoid dots next to a uitextfield
How to remove dots in UITextfield?和其他答案,但不适用于我的情况。 当我使用默认键盘时,它会滚动我输入的文字
我的主板是
当length大于TextFied Width然后显示
我的代码是
- (IBAction)numberPressed:(id)sender {
UIButton *btn=(UIButton *)sender;
int number=btn.tag;
if (number <= 9)
txtPrice.text = [NSString stringWithFormat:@"%@%d",txtPrice.text, number];
//decimal point
else if (number == 10) {
if ([txtPrice.text rangeOfString:@"."].location == NSNotFound)
txtPrice.text = [NSString stringWithFormat:@"%@.", txtPrice.text];
}
//0
else if (number == 11)
txtPrice.text = [NSString stringWithFormat:@"%@0", txtPrice.text];
//backspace
else if (number == 12) {
if ([txtPrice.text length] > 0)
txtPrice.text = [txtPrice.text substringToIndex:[txtPrice.text length] - 1];
else
txtPrice.text = @"";
}
}
#pragma mark -
#pragma mark -TextField Delegate Method
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[self showKeyboard];
return NO; // Hide both keyboard and blinking cursor.
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
return YES;
}
答案 0 :(得分:1)
UITextField
仅限于一行。所以当UITextField
到达终点时它是大的时候它会显示点。
您需要使用UITextView
代替UITextField
来显示和修改multiline
文字。
在Interface Builder中,在您想要的位置添加UITextView
,然后选择“可编辑”框。它默认为multiline
。
我认为这会对你有所帮助。 ^ _ ^
答案 1 :(得分:1)
你可以试试这个:
self.txtPrice.font = [UIFont systemFontOfSize: 14.0];
self.txtPrice.adjustsFontSizeToFitWidth = YES;
self.txtPrice.minimumFontSize = 7.0;
“adjustsFontSizeToFitWidth”是一个布尔值,指示是否应缩小字体大小以使文本字符串适合文本字段的边界矩形。
“minimumFontSize”是用于绘制文本字段文本的最小允许字体的大小。
答案 2 :(得分:0)
如果您想要与计算器或手机应用程序类似的行为,则必须将以下属性设置为true(是):
textField.adjustsFontSizeToFitWidth = YES;
您还应将minimumFontSize
属性设置为“,以防止接收器将字体大小减小到不再清晰的程度。”
答案 3 :(得分:0)
另一种方法是(删除点和剪辑文本到框架) -
您可以从代码
后面的UITextField中删除点[self.yourTextField becomeFirstResponder];
您还可以使用以下代码隐藏默认键盘[如果使用任何自定义键盘]
//隐藏拨号盘的键盘,但显示闪烁的光标 UIView * dummyKeyboardView = [[UIView alloc] initWithFrame:CGRectMake(0,0,1,1)]; yourTextField.inputView = dummyKeyboardView; [dummyKeyboardView发布];
但我认为如果你想要显示所有文字(不剪辑),IlNero的答案会更好。
答案 4 :(得分:-4)
你能做的是
txtPrice.text = [txtPrice.text stringByReplacingOccurrencesOfString:@"." withString:@""];
让我知道它的工作与否!!!
快乐编码!!!