আইওএস 13 এ ডিফল্টরূপে সিস্টেম ইমোজি কীবোর্ড দেখানো হচ্ছে


17

সমাধান

এখানে একটি হল পূর্ণ সমাধান / কাজ এই সমস্যার জন্য প্রায়, ভোট Blld আপ সন্তুষ্ট উত্তর পাশাপাশি কারণ এই প্রয়োজন তথ্য অত্যাবশ্যক একটু হয়েছে!

সহায়তা অনুসন্ধানে বিকল্প শিরোনাম

  • কোনও UIKeyInput অবজেক্টের জন্য ইমোজি কীবোর্ডটি ডিফল্ট হিসাবে দেখানো হচ্ছে (আইওএস 13 এ)
  • ইমোজি কীবোর্ডটি দেখানোর জন্য আইওএস 13 চাপ দিন
  • UITextInputMode.primaryLanguageইমোজি সেট করা হচ্ছে
  • প্রোগ্রামোগুলি ইমোজি তে কীবোর্ড সেট করুন

আগে সেই সমান "ইমোজি" UITextInputModeদিয়ে ফেরত primaryLanguageইমোজি দেখানোর জন্য ডিফল্ট হবে (নীচের চিত্রটি দেখুন)।

ইমোজি কীবোর্ড স্ক্রিন শট

"ইমোজি" ফেরতের উদাহরণ কোড UITextInputMode

//
//  ViewController.swift
//  Keyboard Info
//
//  Created by Richard Stelling on 30/09/2019.
//  Copyright © 2019 Richard Stelling. All rights reserved.
//

import UIKit

class TestButton: UIButton, UIKeyInput {

    var hasText: Bool = true

    func insertText(_ text: String) { print("\(text)") }

    func deleteBackward() {}


    override var canBecomeFirstResponder: Bool { return true }

    override var canResignFirstResponder: Bool { return true }

    override var textInputMode: UITextInputMode? {
        for mode in UITextInputMode.activeInputModes {
            if mode.primaryLanguage == "emoji" {
                return mode
            }
        }
        return nil
    }
}

আইওএস 12 এ এই কোডটি চালানো ইবোজি সিস্টেমে কীবোর্ডটি সেট করবে ইমোজি কীবোর্ড, তবে আইওএস 13 এ এর ​​কোনও প্রভাব নেই।

এটি কি জানা বাগ? এখানে কি কাজ আছে?

আপডেট

  • @ নাভিলাস দ্বারা অনুরোধ করা , "সক্রিয় ইনপুট মোডের" সম্পূর্ণ তালিকাটি; "এন জিবি", "ইমোজি"
  • পরীক্ষিত এবং নিশ্চিত; 13.0, 13.1, 13.1.1, 13.1.2 এবং 13.2 (বীজ 1)

মজার বিষয়: আমি এই কোডটি সিমুলেটারে সফলভাবে চালাতে সক্ষম হয়েছি, তবে ডিভাইসে নয়। আইওএস 13 উভয়ের জন্য। এখন আমি কৌতূহলী।
মেরিনা

সিমুলেটারেও আমার জন্য কাজ করেছেন। @ আরজেস্টেলিং আপনার ডিভাইসে সক্রিয় ইনপুটমোডগুলির সম্পূর্ণ তালিকা কী? মুদ্রণ (UITextInputMode.activeInputModes.map ({(ড) -> রিটার্ন m.primaryLanguage মধ্যে স্ট্রিং ?? ""})): আপনার সাথে এই পরীক্ষা করতে পারবেন
Navillus

@ নাভিলাস - প্রশ্নের উত্তরগুলি, এর "এনবি-জিবি" এবং "ইমোজি"
২১

1
এটি এখন আইওএস 13.4 / এক্সকোড 11.4
স্টিফেন

উত্তর:


9

আমি এটিতে আইওএস 13 এর জন্য একটি রাডার দায়ের করেছি কারণ আমার কাছে দ্বিভাষিক জাপানি / ইংরেজি অ্যাপ্লিকেশন রয়েছে। কিছু ক্ষেত্রগুলি জাপানি এবং কিছু ইংরেজী তাই স্পষ্টতই এটি 20 বার পিছনে পিছনে উল্টানো না করে সঠিক কীবোর্ডের ব্যবহারকারীর কাছে উপস্থাপন করা বোধগম্য।

এটির জন্য একটি পরিকল্পনা ছিল, এবং এটি হ'ল ইউআইকিট 'টেক্সটইনপুটমড' কল করার পরে, মূল থ্রেডে আপনি এটি করতে পারেন:

// has to be done after the textInputMode method is called
if #available(iOS 13, *) {
    textField.keyboardType = textField.keyboardType
} 

এটি আপনি চাইলে পাঠ্য ইনপুটমোডের সাথে উত্তর দেওয়ার পরে কীবোর্ডটিকে পুনরায় লোড করতে বাধ্য করে। আমি তাদের বাগ এবং সঠিক আচরণ পেতে কর্মক্ষেত্র সম্পর্কে অবহিত করেছি।

সুতরাং আইওএস 13.1 এ বাগটি ঠিক করা হয়নি, তবে তারা আমার কাজটিকে অবরুদ্ধ করেছে।

খুশী হলাম। আমি তাদের কাছে আর কোনও বাগ রিপোর্ট করব না। পরিবর্তে যদি আমি কোনও কাজের সন্ধান পাই তবে আমি এটি ব্যবহার করব।

সুতরাং দেখে মনে হচ্ছে তারা এখন নিঃশব্দে এই বৈশিষ্ট্যটি অক্ষম করছে। এবং এটি একটি বৈশিষ্ট্য, ব্যবহারকারীর কাছে কী ইনপুট মোড উপস্থাপন করা উচিত তা খুঁজে পাওয়ার জন্য এটি আক্ষরিকভাবে এই পদ্ধতি কলটির উদ্দেশ্য।

আপনার যদি অন্য ভাষা থাকে এবং ইংরেজি নির্বাচন করতে চান তবে এটি এখনও ঠিক কাজ করে।

সুতরাং যদি আমার ব্যবহারকারী জাপানীজকে কীবোর্ড নির্বাচন হিসাবে সেট করে তবে আমি একটি ইংরেজী কীবোর্ড জোর করে নিতে পারি। চারপাশে অন্য উপায় না। একটি জাপানি ইনপুট মোড পাওয়ার যে কোনও প্রচেষ্টা একটি ইংলিশ কীবোর্ডে শেষ হয়।

সম্পাদনা করুন:

আপনি এর চারপাশে কাজ করতে পারেন এমন আরও একটি পথ রয়েছে তবে এটিতে অভ্যন্তরীণ API আবিষ্কার এবং ব্যবহার জড়িত যা সোজা নয়। গ্লোব বোতামটি আঘাতের ফলাফলগুলি পরিচালনা করতে আপনাকে প্রয়োজনীয়ভাবে ফাংশনগুলি সন্ধান করতে হবে। আপনি যদি এটি করেন যে আপনি মূলত ব্যবহারকারীর ট্যাপগুলি সিমুলেট করছেন এবং এর বিস্তৃত প্রভাব রয়েছে, অর্থাৎ অন্যান্য অ্যাপ্লিকেশনের জন্যও কীবোর্ডটি পরিবর্তন করা হবে। সুতরাং এটি প্রস্তাবিত নয়, 100% এটি অ্যাপ স্টোর জমা দিতে ব্যর্থ হবে। আমার সর্বশেষ কাজের ফলাফলের কারণে আমি এটি পোস্ট করতে চাই না।

আমি মনে করি অ্যাপলকে খুব সহজে বোঝা সম্ভব নয়। আমি কেবল জানি:

  1. এপিআই প্রকাশিত হিসাবে কাজ করছে না
  2. এটি রিপোর্ট করা হয়েছিল এবং তারা বাগটি ঠিক করেনি
  3. যেহেতু রিপোর্টিংয়ের সময় থেকে তারা (ইচ্ছাকৃতভাবে বা না) কার্যনির্বাহী হয়েছিল

সুতরাং ভবিষ্যতের কাজের ক্ষেত্রগুলি তাদের উদ্দেশ্যগুলি পরিষ্কার না হওয়া অবধি এবং / অথবা তারা এই বাগটি ঠিক করে ফেলবে (যা তাদের করা উচিত)। পরিবর্তনটি প্রকাশ না করে কেবল এপিআইর অংশটি প্রত্যাহার করা একটি বড় বাগ is


এর জন্য ধন্যবাদ! এটি আমাকে আরও কিছুটা বুঝতে সাহায্য করেছে। আমি সন্দেহ করি তারা উদ্দেশ্যমূলকভাবে আপনার কাজকে অবরুদ্ধ করেছে, এটি আমার কাছে আরও ত্রুটির মতো মনে হয়। যদি তারা বৈশিষ্ট্যটি সরাতে চায় তবে তারা এটিকে অবহেলা করতে পারে।
rjstelling

"মূর্খতার দ্বারা যথাযথভাবে ব্যাখ্যা করা হয়েছে এমন দূষিত হওয়ার জন্য কখনই এট্রিবিউট করবেন না" "
rjstelling

এর জন্য কেউ কি অন্য কোনও কাজ খুঁজে পেয়েছে?
shujaat

8

এনবি: আপনার ইমোজি কীবোর্ড সক্ষম হয়েছে তা নিশ্চিত করুন।

এটি আইওএস 13 বাগ হিসাবে মনে হচ্ছে, চারপাশের কাজ (ডিভাইসের জন্য, এটি সিমুলেটারকে প্রভাবিত করে না) textInputContextIdentifierসম্পত্তিটি ওভাররাইড করে এবং একটি অ-শূন্য মান ফিরে আসে।

//
//  ViewController.swift
//  Keyboard Info
//
//  Created by Richard Stelling on 30/09/2019.
//  Copyright © 2019 Richard Stelling. All rights reserved.
//

import UIKit

class TestButton: UIButton, UIKeyInput {

    var hasText: Bool = true

    override var textInputContextIdentifier: String? { "" } // return non-nil to show the Emoji keyboard ¯\_(ツ)_/¯ 

    func insertText(_ text: String) { print("\(text)") }

    func deleteBackward() {}

    override var canBecomeFirstResponder: Bool { return true }

    override var canResignFirstResponder: Bool { return true }

    override var textInputMode: UITextInputMode? {
        for mode in UITextInputMode.activeInputModes {
            if mode.primaryLanguage == "emoji" {
                return mode
            }
        }
        return nil
    }
}

তার উত্তর জন্য BLD ধন্যবাদ ।


1
ইংলিশ দশমিক প্যাড দেখানোর ক্ষেত্রে আমার একই ধরণের সমস্যা হচ্ছে। আমার অ্যাপ্লিকেশনটির ভাষা আরবিতে রয়েছে এবং আমি চাই আমার পাঠ্য ক্ষেত্রটি ইংরাজী দশমিক প্যাড প্রদর্শন করবে। আমি এই বর্ণগুলি এবং পদ্ধতিগুলিকে ওভাররাইড করে উপরে উল্লিখিত পদক্ষেপগুলি করেছি। TextInputMode, আমি আসতে "স্বীকারোক্তি-মার্কিন" শুধুমাত্র মোড, কিন্তু এখনও এটি iOS 13. আরবি দশমিক প্যাড দেখায়
শুজাআত

আইওএস 13.2 এ আমার জন্য কাজ করে না
আটারেশকোভ

আমি নিশ্চিত করতে পারি যে এটি iOS 13.2 এর জন্য আর কাজ করবে বলে মনে হচ্ছে না ...
জে লি

@ জায়েলি নিশ্চিত করুন যে আপনার ইমোজি কীবোর্ড সক্ষমিত রয়েছে
19'9

7

textinputcontextidentifierআপনার পাঠ্যফিল্ডটি সেট করা দরকার যাতে আইওএস জানতে পারে যে কাস্টমটি কোথায় সংরক্ষণ করতে হবেtextInputMode

এটি ডকটিতে লিখিত হয়নি তবে এটি কার্যকর।

রেফ: https://developer.apple.com/docamentation/uikit/uiresponder/1621091-textinputcontextidentifier


2
এই আইওএস 13. শুধু উপর আমার জন্য কাজ ফিরে "emoji"বা ""জন্য textInputContextIdentifierআমার কাস্টম মধ্যে UITextFieldশো ইমোজি কীবোর্ড (যখন সঙ্গে মিলিত textInputModeপ্রশ্নে ওভাররাইড)। লুকানো ডক্সে টিপ দেওয়ার জন্য ধন্যবাদ। 👍
বাজা207

অ্যাপটির স্থানীয়করণ আরবিতে থাকা অবস্থায় আমরা যখন ইউআইটিেক্সটফিল্ডের জন্য ইংলিশ দশমিক প্যাড প্রয়োগ করতে চাই তখন কাজ করে না।
shujaat
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.