আমি আমার অ্যাপ্লিকেশনগুলির একটিতে এই প্রোটোকল / এক্সটেনশনটি ব্যবহার করছি এবং এটি আরও কিছুটা পঠনযোগ্য। আমি পছন্দ করি এটি কীভাবে ব্যাকস্পেসগুলি স্বীকৃতি দেয় এবং কোনও চরিত্র যখন ব্যাকস্পেস হয় তখন আপনাকে স্পষ্টভাবে বলে দেয়।
কিছু বিষয় বিবেচনা করুন:
1. এই প্রোটোকল এক্সটেনশানটি যা কিছু প্রয়োগ করে তার জন্য একটি চরিত্রের সীমা নির্দিষ্ট করা দরকার। এটি সাধারণত আপনার ভিউকন্ট্রোলার হতে চলেছে, তবে আপনি একটি গণিত সম্পত্তি হিসাবে চরিত্র সীমাটি প্রয়োগ করতে এবং অন্য কোনও কিছু ফিরিয়ে আনতে পারেন, উদাহরণস্বরূপ আপনার মডেলগুলির একটিতে চরিত্রের সীমা।
২. আপনার পাঠ্য ক্ষেত্রের shouldgeCharactersInRange প্রতিনিধি পদ্ধতির অভ্যন্তরে আপনাকে এই পদ্ধতিটি কল করতে হবে। অন্যথায় আপনি মিথ্যা ইত্যাদি ফিরিয়ে পাঠ্য এন্ট্রি ব্লক করতে পারবেন না etc.
৩. আপনি সম্ভবত ব্যাকস্পেস অক্ষরের মাধ্যমে অনুমতি দিতে চাইবেন। এজন্য আমি ব্যাকস্পেসগুলি সনাক্ত করতে অতিরিক্ত ফাংশন যুক্ত করেছি। আপনার shouldChageCharacters পদ্ধতিটি এটির জন্য পরীক্ষা করতে পারে এবং তাড়াতাড়ি 'সত্য' ফিরতে পারে যাতে আপনি সর্বদা ব্যাকস্পেসগুলিকে অনুমতি দেন।
protocol TextEntryCharacterLimited{
var characterLimit:Int { get }
}
extension TextEntryCharacterLimited{
func charactersInTextField(textField:UITextField, willNotExceedCharacterLimitWithReplacementString string:String, range:NSRange) -> Bool{
let startingLength = textField.text?.characters.count ?? 0
let lengthToAdd = string.characters.count
let lengthToReplace = range.length
let newLength = startingLength + lengthToAdd - lengthToReplace
return newLength <= characterLimit
}
func stringIsBackspaceWith(string:String, inRange range:NSRange) -> Bool{
if range.length == 1 && string.characters.count == 0 { return true }
return false
}
}
আপনার যদি কেউ আগ্রহী হন তবে আমার কাছে একটি গিথুব রেপো রয়েছে যেখানে আমি এই চরিত্রের সীমাবদ্ধতার কিছু আচরণ নিয়েছি এবং একটি আইওএস ফ্রেমওয়ার্কে রেখেছি। টুইটারের মতো অক্ষর সীমা প্রদর্শন করতে আপনি প্রয়োগ করতে পারেন এমন একটি প্রোটোকল রয়েছে যা আপনাকে দেখায় যে আপনি চরিত্রের সীমা থেকে কত দূরে চলে গেছেন।
গিথুব-এ চরিত্রের সীমাবদ্ধ ফ্রেমওয়ার্ক