使“UITextField”的某些部分不可选择
Posted
技术标签:
【中文标题】使“UITextField”的某些部分不可选择【英文标题】:Making some parts of a `UITextField` un-selectable 【发布时间】:2015-01-14 11:26:36 【问题描述】:我有一个UITextField
,它将表示一个带有分数(分子和分母)的整数。例如:"27 3/16"
。我想让分母 "/16"
最后既不可编辑又不可选择。
我可以使用委托方法textField:shouldChangeCharactersInRange:replacementString:
来防止"/16?"
被a bit like this 方法编辑。
有没有什么方法可以阻止"/16"
被选中?因此,插入符号不能移入其中,也不能围绕它进行选择标记。
如果这不可能,是否有一个钩子,以便用户完成选择后,我可以更新选择并将插入符号移动到这段文本之前。
谢谢。
【问题讨论】:
【参考方案1】:您可以通过自动布局将 UILabel 和 UITextField 约束在彼此旁边,UILabel 包含分子,UITextField 包含分子。
这是一个关于如何做到这一点的已回答问题:Using Auto Layout to have UILabel and UITextField next to each other(本质是,您需要调整 UITextField 的内容拥抱优先级,使其始终与包含的文本一样宽。
如果您的文本字段太小而无法点击,您可以将此答案的代码应用到 UITextView 并使您的视图的可点击区域更大:UIButton: Making the hit area larger than the default hit area(但更好地使用方法调动而不是在答案中的类别!或子类。)
【讨论】:
有趣——我正在考虑这个问题,但没有考虑,因为我觉得空场的命中目标会变小。不过我会重新考虑……谢谢。 要使可点击区域更大,您也可以将此答案的代码应用于 UITextField,实际上应用于任何视图:***.com/questions/808503/…以上是关于使“UITextField”的某些部分不可选择的主要内容,如果未能解决你的问题,请参考以下文章