我一直在尝试UITextField和如何使用它的光标位置.我已经找到了许多关系Objective-C答案,如
但由于我正在使用Swift,我想学习如何获取当前光标位置并在Swift中设置它.
下面的答案是我从Objective-C进行实验和翻译的结果.
我有一个UITextField我通过修改更改通知处理程序内的文本强制格式化.这很有效(一旦我解决了重入问题),但又给我留下了一个唠叨的问题.如果用户将光标移动到字符串末尾以外的某个位置,则我的格式更改会将其移动到字符串的末尾.这意味着用户不能一次插入多个字符到文本字段的中间.有没有办法记住然后重置光标位置UITextField?
有没有办法通过文本字段的UITextRange对象获取UITextField当前的插入位置?即使有任何用途,UITextField还是返回了UITextRange吗?UITextPosition的公共接口没有任何可见成员.
我需要获取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) 我有一个UISearchBar,我试图设置一个光标位置.我正在使用UITectField委托,因为我找不到任何直接用于UISearchBar的东西.以下是我使用的代码:
UITextField *textField = [searchBar valueForKey: @"_searchField"];
// Get current selected range , this example assumes is an insertion point or empty selection
UITextRange *selectedRange = [textField selectedTextRange];
// Construct a new range using the object that adopts the UITextInput, our textfield
UITextRange *newRange = [textField textRangeFromPosition:selectedRange.start toPosition:selectedRange.end];
Run Code Online (Sandbox Code Playgroud)
问题在'toRosition'的'newRange'对象中我希望有类似selectedRange.end-1的东西; 因为我希望光标位于倒数第二个位置.
如何将光标设置到倒数第二个位置?
我在Web视图中更改了文本的方法,以检测当前插入符号位置的可见rect.
UITextPosition *endPos = self.selectedTextRange.end;
CGRect rect = [self caretRectForPosition:endPos];
[self scrollRectToVisible:rect animated:NO];
Run Code Online (Sandbox Code Playgroud)
除非我在文档末尾并按下键盘上的删除键,否则它的效果很好.在这种情况下,它会滚动到文档的开头,这是意外的.
我制作了盒子,我设置了行高,文本自动垂直居中.有没有办法或任何一种技巧来设置框底部的文字?
div {
width: 100px;
height: 100px;
background: #eee;
color: #333;
text-align: center;
line-height: 100px;
vertical-align: text-bottom;
}
<div>FoxRox</div>
Run Code Online (Sandbox Code Playgroud) 如何使文本显示在按钮的旁边,而不是在按钮上?
这是我需要的屏幕截图:

您可以在第一个按钮上看到文本。它写在按钮上,我无法将它移开(除了改变重力,但这并不是我真正想要的)。在第二个按钮旁边,我放了一个标签,作为我想要实现的目标的指南。
有没有办法在Android中做到这一点?在 ObjectiveC 中它非常简单。
ios ×4
uitextfield ×4
uitextrange ×3
objective-c ×2
uitextview ×2
android ×1
button ×1
css ×1
int ×1
ipad ×1
iphone ×1
struct ×1
swift ×1