1

アプリケーションで作成し、価格を入力する必要がありました。クライアントは独自のデザインのキーボードを必要としていたので、次のキーボードを開発しました。それは完璧に動作します。問題は、テキストが より大きく、UITextFieldドットが表示される場合です。私はグーグルとSOで検索しましたが、何も見つかりませんでした。
uitextfield の横のドットを避ける
方法 UITextfield のドットを削除するには? および他の答えですが、私の場合は機能しません。デフォルトのキーボードを使用すると、入力した番号のテキストがスクロールされます

私のキーボードは

ここに画像の説明を入力

長さが TextFied 幅よりも大きい場合は、表示されます

ここに画像の説明を入力

私のコードは

     - (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特に1行のみです。UITextFieldそのため、最後に到達したときのサイズが何であれ、ドットが表示されます。

テキストの表示と編集にはUITextView代わりに使用する必要があります。UITextFieldmultiline

Interface Builder で、必要なUITextView場所に を追加し、「編集可能」ボックスを選択します。それはmultilineデフォルトであるでしょう。

これが役立つと思います。^_^

于 2013-06-04T07:12:41.473 に答える
0

電卓または電話アプリと同様の動作が必要な場合は、次のプロパティを true (YES) に設定する必要があります。

textField.adjustsFontSizeToFitWidth = YES;

また、minimumFontSizeプロパティを「受信者が判読不能になるまでフォント サイズを縮小しないようにする」に設定する必要があります。

UITextField リファレンスを確認してください

于 2013-06-04T07:06:49.910 に答える
0

別のアプローチは(ドットを削除してテキストをフレームにクリップする)-

次のコードを呼び出す UITextField からドットを削除できます

[self.yourTextField becomeFirstResponder];

次のコードを使用して、デフォルトのキーボードを非表示にすることもできます[カスタムキーボードを使用する場合]

// ダイヤル パッドのキーボードを非表示にしますが、点滅カーソルを表示します UIView *dummyKeyboardView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)]; yourTextField.inputView = dummyKeyboardView; [dummyKeyboardView リリース];

しかし、すべてのテキストを表示したい (クリップしない) 場合は、IlNero の回答の方が適していると思います。

于 2013-08-28T06:56:15.340 に答える
-4

あなたができることは

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

それが機能しているかどうかを教えてください!!!

ハッピーコーディング!!!

于 2013-06-04T07:13:28.890 に答える