使 `UITextField` 的某些部分不可选择
Making some parts of a `UITextField` un-selectable
我有一个 UITextField
,它将表示一个带有分数(分子和分母)的整数。例如:"27 3/16"
。我想让分母 "/16"
在最后既不可编辑又 un-selectable.
我可以使用委托方法 textField:shouldChangeCharactersInRange:replacementString:
来防止 "/16?"
被 a bit like this 编辑。
有没有什么方法可以完全阻止 "/16"
被选中?因此,无法将插入符号移入其中,也无法在其周围创建选择标记。
如果这不可能,是否有一个挂钩,以便在用户完成选择后,我可以更新选择并将插入符号移动到这段文本之前。
谢谢。
您可以通过自动布局将 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
,它将表示一个带有分数(分子和分母)的整数。例如:"27 3/16"
。我想让分母 "/16"
在最后既不可编辑又 un-selectable.
我可以使用委托方法 textField:shouldChangeCharactersInRange:replacementString:
来防止 "/16?"
被 a bit like this 编辑。
有没有什么方法可以完全阻止 "/16"
被选中?因此,无法将插入符号移入其中,也无法在其周围创建选择标记。
如果这不可能,是否有一个挂钩,以便在用户完成选择后,我可以更新选择并将插入符号移动到这段文本之前。
谢谢。
您可以通过自动布局将 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(但最好使用方法调配而不是覆盖答案中类别中的方法!或子类。)