我希望能够在UITextField中编辑文本,如下所示: “第一部分[]第二部分”
我的第一种方法(在一些搜索之后)是使用文本字段leftView作为“第一部分”而右视图使用“第二部分”,两者都带有带文本的uilabel子视图。但我似乎无法正确定位。特别是让它适应动态...
我是否在正确的轨道上?有更优雅的方式吗?感谢任何帮助。谢谢。
答案 0 :(得分:2)
UITextField委托协议中有一个方法应该完全符合您的要求:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
如果不改变“第一部分”和“第二部分”,您可以根据它们设置范围,即将范围的开头设置为“第一部分”的结尾和范围的结束为字符串的总长度减去“第二部分”的长度
答案 1 :(得分:0)
要获取中间UITextField的宽度,可以使用NSString的 - (CGSize)sizeWithFont:(UIFont *)字体并使用它来设置UITextField的大小。一旦你知道它的框架,你可以定位另外两个UILabel的框架。
另一种选择可能只是拥有一个字符串,但强制输入点位于[]之间,并禁止尝试将其设置在该范围之外。