从UITextField中删除点

时间:2013-06-04 07:01:19

标签: iphone ios objective-c

我在应用程序上创建,我需要输入价格。客户需要自己的设计键盘,所以我开发了以下键盘。它完美无缺。问题是当文本大于UITextField时,它会显示点。我搜索谷歌和SO但没有找到任何东西。
   how to avoid dots next to a uitextfield
   How to remove dots in UITextfield?和其他答案,但不适用于我的情况。 当我使用默认键盘时,它会滚动我输入的文字

我的主板是

enter image description here

当length大于TextFied Width然后显示

enter image description here

我的代码是

     - (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;
   }

5 个答案:

答案 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属性设置为“,以防止接收器将字体大小减小到不再清晰的程度。”

查看UITextField Reference

答案 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:@""];

让我知道它的工作与否!!!

快乐编码!!!