Disable blinking cursor in UITextField?

前端 未结 10 936
日久生厌
日久生厌 2020-12-24 06:31

I\'ve followed the instructions here and succesfully set up a UITextField that gets updated with a UIDatePicker. However the cursor in the UITextField is blinking, which see

相关标签:
10条回答
  • 2020-12-24 06:41

    Balaji's approach does work.

    I also used such KVC solutions many times. Despite it seems to be undocumented, but it works. Frankly, you don't use any private methods here - only Key-Value Coding which is legal.

    It is drastically different from [addNewCategoryTextField textInputTraits].

    P.S. Yesterday my new app appeared at AppStore without any problems with this approach. And it is not the first case when I use KVC in changing some read-only properties (like navigatonBar) or private ivars.

    0 讨论(0)
  • 2020-12-24 06:45

    I hope it will helpful to you.

    Set Cursor UIColor -> Empty.

     [[self.textField valueForKey:@"textInputTraits"] setValue:[UIColor clearColor] forKey:@"insertionPointColor"];
    

    In Swift : 2.3

    self.textField.valueForKey("textInputTraits")?.setValue(UIColor.clearColor() , forKey:"insertionPointColor")
    
    0 讨论(0)
  • 2020-12-24 06:48

    I realise this is an old question, but with the updates to iOS 7, it is now possible to hide the cursor by doing the following:

    [[self textFieldName] setTintColor:[UIColor clearColor]];

    It will only work on iOS 7+ however.

    0 讨论(0)
  • 2020-12-24 06:48

    You can add a BOOL cursorless property to UITextField in a category via associated objects.

    @interface UITextField (Cursorless)
    
    @property (nonatomic, assign) BOOL cursorless;
    
    @end
    

    Then use method swizzling to swizzle caretRectForPosition: with a method that toggles between CGRectZero and its default value using cursorless.

    This leads to a simple interface via a drop-in category. This is demonstrated in the following files.

    Simply drop them in and get the benefit of this simple interface

    UITextField category: https://github.com/rexmas/RexDK/blob/master/RexDK/UI/UITextField%2BRXCursorless.h https://github.com/rexmas/RexDK/blob/master/RexDK/UI/UITextField%2BRXCursorless.m

    Method Swizzling: https://github.com/rexmas/RexDK/blob/master/RexDK/Foundation/NSObject%2BRXRuntimeAdditions.h https://github.com/rexmas/RexDK/blob/master/RexDK/Foundation/NSObject%2BRXRuntimeAdditions.m

    0 讨论(0)
  • 2020-12-24 06:50

    I couldn't get jcm's solution to work. What I ended up doing was to subclass UILabel to mimic a UITextField's interactive functionality without the parts that I didn't want (like the cursor). I wrote a blog post about it here:

    http://pietrorea.com/2012/07/how-to-hide-the-cursor-in-a-uitextfield/

    Basically, the UILabel subclass needs to overwrite isUserInteractionEnabled, inputView, inputViewAccessory and canBecomeFirstResponder. It's only a few lines of code and it makes more sense.

    0 讨论(0)
  • 2020-12-24 06:53

    Totally silly hack, but if you set the text field's tint color in the UIView section of the Interface Builder property inspector to match the background color, the cursor will appear invisible:

    0 讨论(0)
提交回复
热议问题