uitextfield - IOS9 में शॉर्टकट बार को कैसे छिपाएं




(5)

मेरे पास एक छिपे हुए कीबोर्ड के साथ एक टेक्स्टफ़ील्ड है (क्योंकि मैं इसे ब्लूटूथ के साथ उपयोग कर रहा हूं)। हालाँकि, iOS9 में शॉर्टकट बार दिखाई देता रहता है।

क्या इसे छिपाने का भी कोई तरीका है?

आपको बहुत - बहुत धन्यवाद!


अपने ऐप के सभी टेक्स्ट फ़ील्ड के लिए ऐसा करने का एक आसान तरीका है UITextInputAssistantItem पर एक श्रेणी UITextInputAssistantItem और UITextInputAssistantItem और UITextInputAssistantItem लिए प्राप्तकर्ताओं को इस तरह से ओवरराइड करना।

@implementation UITextInputAssistantItem (RemoveBars)

- (NSArray<UIBarButtonItemGroup *> *)leadingBarButtonGroups
{
    return @[];
}

- (NSArray<UIBarButtonItemGroup *> *)trailingBarButtonGroups
{
    return @[];
}

@end

यह मेरे लिए iOS 9.x और 8.x पर काम करता है, किसी भी सशर्त कोड की आवश्यकता नहीं है।

हालांकि इसके साथ सावधान रहें , यह उन संपत्तियों को ओवरराइड करता है जो UITextInputAssistantItem का उपयोग करता है


आप userNameTextField की जगह अपना टेक्स्टफील्ड नाम पास कर सकते हैं जिसके लिए आप शॉर्टकट बार को हटाना चाहते हैं।

UITextInputAssistantItem* item = [userNameTextField inputAssistantItem];
item.leadingBarButtonGroups = @[];
item.trailingBarButtonGroups = @[];

मेरी भी यही समस्या थी। और इसलिए SO की खोज शुरू करता है। इसलिए ऊपर वाले ने मेरी मदद की, लेकिन पूरा, "अगर iOS9 चीज" इस तरह से तैयार की जा सकती है:

if ([self respondsToSelector:@selector(inputAssistantItem)]) {
    // iOS9.
    UITextInputAssistantItem* item = [self inputAssistantItem];
    item.leadingBarButtonGroups = @[];
    item.trailingBarButtonGroups = @[];
}

खुशी से, मैंने एक UITextField, (CHTextField) की एक उप-क्लास बनाई और हर जगह उपयोग में थी। तो यह बहुत आसान था कि इस ओवर-राइड "इनिट" विधि में इसे मिटा दिया जाए।

आशा है ये मदद करेगा।


वैकल्पिक रूप से, बस इस तरह स्विफ्ट 2.0 में UITextField के लिए एक एक्सटेंशन बनाएं।

extension UITextField
{
    public func hideAssistantBar()
    {
        if #available(iOS 9.0, *) {
           let assistant = self.inputAssistantItem;
            assistant.leadingBarButtonGroups = [];
            assistant.trailingBarButtonGroups = [];
        }
    }
}

तब आप किसी भी पाठ क्षेत्र पर अपनी पसंद के अनुसार सिर्फ HideAssistantBar () कॉल कर सकते हैं।

@IBOutlet weak var myTextField: UITextField?;

override public func viewDidLoad() {
    super.viewDidLoad();

    myTextField?.hideAssistantbar();
}

स्विफ्ट 3.0 और 4.0 में

self.textField.inputAssistantItem.leadingBarButtonGroups.removeAll()
self.textField.inputAssistantItem.trailingBarButtonGroups.removeAll()