1

我在应用程序上创建,我需要输入价格。客户需要自己设计的键盘,所以我开发了以下键盘。它完美无缺。问题是当文本大于UITextField's 时,它会显示点。我在谷歌和 SO 上搜索,但没有找到任何东西。
如何避免 uitextfield 旁边的点
如何删除 UITextfield 中的点? 和其他答案,但在我的情况下不起作用。当我使用默认键盘时,它会滚动文本我输入的数字

我的键盘是

在此处输入图像描述

当长度大于 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;
   }
4

5 回答 5

1

你可以试试这个:

self.txtPrice.font = [UIFont systemFontOfSize: 14.0];
self.txtPrice.adjustsFontSizeToFitWidth = YES;
self.txtPrice.minimumFontSize = 7.0;

“adjustsFontSizeToFitWidth”是一个布尔值,指示是否应减小字体大小以使文本字符串适合文本字段的边界矩形。

“minimumFontSize”是用于绘制文本字段文本的最小允许字体的大小。

于 2013-06-04T08:50:22.300 回答
1

UITextField特别是只有一行。因此,无论UITextField何时到达终点,它都会显示点。

您需要使用UITextView而不是UITextField显示和编辑multiline文本。

在 Interface Builder 中添加UITextView您想要的位置并选择“可编辑”框。默认情况multiline下。

我想这会对你有所帮助。^_^

于 2013-06-04T07:12:41.473 回答
0

另一种方法是(删除点和剪辑文本到框架) -

您可以从 UITextField 调用以下代码中删除点

[self.yourTextField 成为FirstResponder];

您还可以使用以下代码隐藏默认键盘 [如果您使用任何自定义键盘]

// 隐藏 Dial Pad 的键盘,但显示闪烁的光标 UIView *dummyKeyboardView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)]; yourTextField.inputView = dummyKeyboardView; [dummyKeyboardView 发布];

但是如果您想显示所有文本(不剪辑),我认为 IlNero 的答案对您来说更好。

于 2013-08-28T06:56:15.340 回答
0

如果您想要与计算器或手机应用程序类似的行为,您必须将以下属性设置为 true(YES):

textField.adjustsFontSizeToFitWidth = YES;

您还应该将该minimumFontSize属性设置为“以防止接收方将字体大小减小到不再清晰的程度”。

查看UITextField 参考

于 2013-06-04T07:06:49.910 回答
-4

你能做的是

  txtPrice.text = [txtPrice.text stringByReplacingOccurrencesOfString:@"." withString:@""];

让我知道它是否有效!

快乐编码!!!

于 2013-06-04T07:13:28.890 回答