我有一个UITextField我通过修改更改通知处理程序内的文本强制格式化.这很有效(一旦我解决了重入问题),但又给我留下了一个唠叨的问题.如果用户将光标移动到字符串末尾以外的某个位置,则我的格式更改会将其移动到字符串的末尾.这意味着用户不能一次插入多个字符到文本字段的中间.有没有办法记住然后重置光标位置UITextField?
如何将UITextRange对象转换为NSRange?我已经看到很多关于走向另一个方向的SO帖子,但这与我需要的相反.我正在使用的UITextRange selectedTextRange是一个属性UITextView.它返回一个,UITextRange但我需要一个范围.
有没有办法通过文本字段的UITextRange对象获取UITextField当前的插入位置?即使有任何用途,UITextField还是返回了UITextRange吗?UITextPosition的公共接口没有任何可见成员.
我试图从UITextView(和/或UITextField)获取选定的文本范围,以便我可以编辑选定的文本,或修改属性字符串.我做出选择时会触发下面的方法,但方法中的代码会返回空值.
- (void)textViewDidChangeSelection:(UITextView *)textView {
UITextRange *selectedRange = [textField selectedTextRange];
NSLog(@"Start: %@ <> End: %@", selectedRange.start, selectedRange.end);
}
Run Code Online (Sandbox Code Playgroud) 我需要获取UIText范围的开始和结束的数值.到目前为止,我只能将描述打印成字符串.
从查看selectedTextRange,我认为它可能是一个结构?如何获取结构的元素?
UITextRange *selectedRange = [myTextView selectedTextRange];
NSLog(@"selectedRange.start %@, selectedRange.end %@ ", selectedRange.start.description, selectedRange.end.description);
Run Code Online (Sandbox Code Playgroud)
这是描述:
2013-03-26 13:44:03.127 AttributedString[24678:907] selectedRange.start <UITextPosition: 0x1ead8f10, 8, {"Rrrttgh "}, {"gggggh ggg..."}>, selectedRange.end <UITextPosition: 0x1eaf7860, 14, {"...tgh gggggh"}, {" gggg"}>
Run Code Online (Sandbox Code Playgroud) 好的,所以我知道Apple的UITextInput协议需要两个UITextRange属性selectedTextRange,markedTextRange并且文档说用户yatta yatta是一个未确认的文本范围selectedTextRange的子markedTextRange范围.对于我应该如何以不同方式实现两个文本范围,这仍然没有让我明白一些事情.有人能直观地向我解释selectedTextRange和之间的区别markedTextRange吗?我知道,当length的selectedTextRange是0它表明在一个闪烁的插入符selectedTextRange的location.但到底是什么"标记文字"?我在iOS中只看到以下文本视图:
selectedTextRange指示"标记文本"中的子范围markedTextRange,即readwrite有关?
我尝试以与使用相同的方式执行此操作UITextField:
textView.selectedTextRange = textView.textRange(from: textView.beginningOfDocument, to: textView.endOfDocument)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
是否有可能实例化UITextRange并为第一个字符UITextField?我需要访问rect的UITextField第一个角色,任何人都可以帮助我吗?
提前致谢
uitextrange ×8
ios ×6
objective-c ×4
uitextfield ×3
uitextview ×2
iphone ×1
nsrange ×1
protocols ×1
struct ×1
swift ×1
uitextinput ×1