我按照說明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. 禁用EditText閃爍光標
- 3. 停止iOS中閃爍的UITextField光標
- 4. UITextField禁用光標
- 5. 使用SC.Timer閃爍光標
- 6. 輸入光標閃爍
- 7. Android NumberPicker不閃爍光標
- 8. 閃爍光標! Cordova/Phonegap IOS
- 9. TextBox光標不閃爍
- 10. 閃光/閃爍UIView
- 11. 停止光標在IDLE中閃爍
- 12. 如何更改NetBeans中的光標(光標)閃爍率?
- 13. 停止Excel閃爍鼠標光標
- 14. 如何在iphone上閃爍(或閃爍)光標?
- 15. 使UITextField背景閃爍
- 16. Google Docs閃爍光標「kix-cursor-caret」
- 17. ListView光標變化和閃爍
- 18. JTreeTable DnD瘋狂閃爍放置光標
- 19. 關於在ActionScrip3中閃爍的鼠標自定義光標
- 20. 與AutoLayout的UITextField邊界閃爍
- 21. 閃光燈保持閃爍onmouseover,jquery
- 22. 如何防止IE8中文本輸入中的光標閃爍?
- 23. 光標在jtable中自動閃爍,無需點擊鼠標
- 24. uitextfield中的光標位置
- 25. 如何使用CSS隱藏閃爍的文本字段光標?
- 26. 用戶點擊wxTextCtrl時如何顯示閃爍的光標?
- 27. 使用IDirect3DDevice9 :: SetCursorProperties時,非客戶區域上的光標閃爍
- 28. jQuery文本編輯器中的光標如何閃爍?
- 29. 隱藏從Jquery UI中閃爍的光標模態dailog
- 30. 如何在輸入文本中隱藏閃爍的光標?
偉大的解決方案! – adnako
我最近在我的項目中添加了PRLabel類..但是我不知道我做錯了什麼,它嚴重地破壞了uview與tableview索引...我認爲當選擇器視圖顯示時,tableview被滾動但視覺上不更新...我在第1部分中有一個PRLabel ..我觸摸它,選擇器視圖顯示然後當我觸摸第0節中的單元格時,它正在解釋爲第1部分.. – raw3d