我按照说明here并成功地设置了UITextField,它使用UIDatePicker进行更新。但是UITextField中的光标闪烁,这对我来说似乎有点尴尬。有没有解决办法摆脱那个光标?禁用UITextField中的闪烁光标?
回答
我所做的是将另一个UITextField覆盖在我想要隐藏光标的顶部。然后在委托方法textFieldShouldBeginEditing中,我将其他textField设置为第一响应者并返回NO。
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField.tag==TAG_OF_DUMMY_TEXTFIELD) {
[otherField becomeFirstResponder];
return NO;
}
return YES;
}
然后在方法日期选择器呼叫:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@YOUR_DATE_FORMAT];
dummyField.text = [dateFormatter stringFromDate:datePicker.date];
在界面生成器otherField(所述一个与所述日期选择器输入视图)是后面dummyField(即隐藏光标的一个)。
我无法让jcm的解决方案工作。我最终做的是将UILabel子类化,以模仿UITextField的交互功能,而不使用我不想要的部分(如光标)。我写了一篇博客文章在这里:
http://pietrorea.com/2012/07/how-to-hide-the-cursor-in-a-uitextfield/
基本上,子类的UILabel需要覆盖isUserInteractionEnabled,inputView,inputViewAccessory和canBecomeFirstResponder。这只是几行代码,它更有意义。
我发现这个解决方案是最容易实现的。
确保你在.h文件中定义UITextFieldDelegate:
.... UIViewController <UITextFieldDelegate>
在您.m文件,将它添加到你叫FO日期选取器的方法:
[yourTextField resignFirstResponder];
这将防止从闪烁的文本字段。
子类的UITextField和重写- (CGRect)caretRectForPosition:(UITextPosition *)position
方法并返回CGRectZero
。
- (CGRect)caretRectForPosition:(UITextPosition *)position {
return CGRectZero;
}
这一个确实做得很好.. –
它不起作用与iOS 4.3。 UITextInput协议仅适用于iOS 5及更高版本。 –
这应该是选定的答案。这是关键,并解决了我们想要隐藏的具体部分 - 即插入符号。这是所有这些方案中的最佳解决方案。谢谢。 –
我希望它对你有帮助。
Set Cursor UIColor - > Empty。
[[self.textField valueForKey:@"textInputTraits"] setValue:[UIColor clearColor] forKey:@"insertionPointColor"];
在斯威夫特:2.3
self.textField.valueForKey("textInputTraits")?.setValue(UIColor.clearColor() , forKey:"insertionPointColor")
巴拉吉的做法确实工作。
我也多次使用过这样的KVC解决方案。 尽管它似乎是无证的,但它的工作原理。坦率地说,你在这里不使用任何 私有方法 - 只有键值编码是合法的。
它与[addNewCategoryTextField textInputTraits]截然不同。
P.S.昨天我的新应用出现在AppStore中,没有任何问题。当我使用KVC更改一些只读属性(如navigatonBar)或私有ivars时,这不是第一种情况。
我意识到这是一个老问题,但是更新到iOS 7,现在可以通过做隐藏光标以下几点:
[[self textFieldName] setTintColor:[UIColor clearColor]];
它只会在iOS工作7+然而。
欣赏更新! –
节奏不错,thansk –
您可以通过关联对象将BOOL cursorless
属性添加到UITextField
的类别中。
@interface UITextField (Cursorless)
@property (nonatomic, assign) BOOL cursorless;
@end
然后使用方法交叉混合来拌和caretRectForPosition:
使用cursorless
CGRectZero
和它的默认值之间的切换的方法。
这导致通过插入类别的简单界面。这在以下文件中演示。
只需拖放他们,并得到这个简单的界面
UITextField
类的好处: https://github.com/rexmas/RexDK/blob/master/RexDK/UI/UITextField%2BRXCursorless.h https://github.com/rexmas/RexDK/blob/master/RexDK/UI/UITextField%2BRXCursorless.m
方法混写: https://github.com/rexmas/RexDK/blob/master/RexDK/Foundation/NSObject%2BRXRuntimeAdditions.h https://github.com/rexmas/RexDK/blob/master/RexDK/Foundation/NSObject%2BRXRuntimeAdditions.m
完全傻砍,但如果你设置Interface Builder中的UIView
部分中的文本字段的色彩颜色Ÿ检查相匹配的背景颜色,光标就会出现隐形:
- 1. 在swift中禁用UITextField中的闪烁光标?
- 2. coderpad.io禁用闪烁光标
- 3. 禁用EditText闪烁光标
- 4. 停止iOS中闪烁的UITextField光标
- 5. UITextField禁用光标
- 6. 使用SC.Timer闪烁光标
- 7. 光标在UITextField中闪烁,但没有出现键盘
- 8. 闪光/闪烁UIView
- 9. TextBox光标不闪烁
- 10. 闪烁光标! Cordova/Phonegap IOS
- 11. Android NumberPicker不闪烁光标
- 12. 输入光标闪烁
- 13. selectize.js - 如何禁用选定项目后的闪烁光标?
- 14. 禁用EditText的输入法,但保持光标闪烁
- 15. 更好闪烁的闪烁光标模式?
- 16. 停止光标在IDLE中闪烁
- 17. 焦点光标在WPF中闪烁
- 18. 如何更改NetBeans中的光标(光标)闪烁率?
- 19. 停止Excel闪烁鼠标光标
- 20. 如何在iphone上闪烁(或闪烁)光标?
- 21. Lotus Notes - 光标在扫描收件箱时闪烁/闪烁
- 22. 计划返回闪烁的光标
- 23. 使UITextField背景闪烁
- 24. 检测闪烁的灯光
- 25. IE8,IE9,IE10闪烁光标问题
- 26. Google Docs闪烁光标“kix-cursor-caret”
- 27. JTreeTable DnD疯狂闪烁放置光标
- 28. ListView光标变化和闪烁
- 29. C++ win32编辑框光标不闪烁
- 30. vim:默认光标不闪烁
伟大的解决方案! – adnako
我最近在我的项目中添加了PRLabel类..但是我不知道我做错了什么,它严重地破坏了uview与tableview索引...我认为当选择器视图显示时,tableview被滚动但视觉上不更新...我在第1部分中有一个PRLabel ..我触摸它,选择器视图显示然后当我触摸第0节中的单元格时,它正在解释为第1部分.. – raw3d