UITextField中的静态字符前缀

pix*_*eak 11 user-interface cocoa-touch uitextfield ios

是否有内置的方法来添加字符前缀,UITextField如下面的屏幕截图?

在此输入图像描述

如果不是,那么最好,最直接的方法是什么?我认为该background物业可能能够做到这一点.

Ann*_*nne 16

只需UILabel在顶部添加灰色即可UITextField:

001 002

请注意,UILabel行为类似于背景图像,输入的文本保持在顶部:

003

UPDATE

此外,您可以UITextField使用以下代码添加一些填充:

UIView *thePadding = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
theTextField.leftView = thePadding;
theTextField.leftViewMode = UITextFieldViewModeAlways;
Run Code Online (Sandbox Code Playgroud)

这样文本就无法覆盖前缀字符.
调整矩形使其在您的情况下正常工作.

  • 那么为什么不使用 UILabel 作为 UIView 的 Padding 呢? (2认同)

Diz*_*iet 9

Anne的代码之后,您也可以直接在代码中执行此操作,而不需要IB中的UILabel和代码中的UIView:

UILabel *poundLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
poundLabel.text = @"£";
[self.paymentAmount setLeftView:poundLabel];
[self.paymentAmount setLeftViewMode:UITextFieldViewModeAlways];
Run Code Online (Sandbox Code Playgroud)