ios:如何在特定位置启动光标?

时间:2017-04-25 06:33:55

标签: ios swift cursor uitextfield

我希望光标位于特定位置。 我在图像中显示了我的要求。

 let arbitraryValue: Int = 5
 if let newPosition = txtroutine.position(from: txtroutine.beginningOfDocument, offset: arbitraryValue) {

        txtroutine.selectedTextRange = txtroutine.textRange(from: newPosition, to: newPosition)
    }

my requirement

my default cursor position

3 个答案:

答案 0 :(得分:0)

您可以使用UITextField的leftView属性根据您的要求设置位置:

//在textField

中添加12pt填充

Swift 3.0:

textField.leftView = UIView(frame: CGRect(x: 0, y: 0, width: 12, height: 0))
textField.leftViewMode = .always

试试这个,随时发表评论。

答案 1 :(得分:0)

我有类似的东西,但我的代码是obj-c希望你能迅速做到,

获取光标的当前位置

 - (NSInteger)cursorPosition
{
    UITextRange *selectedRange = self.selectedTextRange;
    UITextPosition *textPosition = selectedRange.start;
    return [self offsetFromPosition:self.beginningOfDocument toPosition:textPosition];
}

//将光标设置在您的特定位置

- (void)setCursorPosition:(NSInteger)position
{
    UITextPosition *textPosition = [self positionFromPosition:self.beginningOfDocument offset:position];
    [self setSelectedTextRange:[self textRangeFromPosition:textPosition toPosition:textPosition]];
}

答案 2 :(得分:0)

您可以通过覆盖-textRectForBounds:来实现此目的。它只会改变文本的插入,即在你的情况下它的光标。 您需要为此继承UITextField。

 @Entity
@Table(name = "roles")
public class Role extends AbstractPersistable<Long> {

    private static final long serialVersionUID = 1L;

    private String role;

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public Role() {
    }

    public Role(String role) {
        this.role = role;
    }

}

您可以在任何地方使用此文本字段。