আইওএসে কাস্টম কীবোর্ডগুলি প্রবর্তনের সাথে সাথে এই সমস্যাটি আরও জটিল হয়ে উঠবে।
সংক্ষেপে, কাস্টম কীবোর্ড বাস্তবায়ন দ্বারা UIKeyboardWillShowNotifications একাধিকবার কল করা যেতে পারে:
- যখন অ্যাপল সিস্টেম কীবোর্ডটি খোলা হবে (প্রতিকৃতিতে)
- UIKeyboardWillShowNotifications 224 কীবোর্ড উচ্চতা সহ প্রেরণ করা হয়
- যখন Swype কীবোর্ড খোলা হয় (পোর্ট্রেট):
- UIKeyboardWillSowowNotifications 0 এর কীবোর্ড উচ্চতা সহ প্রেরণ করা হয়
- UIKeyboardWillSowowNotifications 216 এর কীবোর্ড উচ্চতা সহ প্রেরণ করা হয়
- UIKeyboardWillSowowNotifications 256 এর কীবোর্ড উচ্চতা সহ প্রেরণ করা হয়
- যখন সুইফটকে কী - বোর্ডটি খোলা হবে (প্রতিকৃতিতে):
- UIKeyboardWillSowowNotifications 0 এর কীবোর্ড উচ্চতা সহ প্রেরণ করা হয়
- UIKeyboardWillSowowNotifications 216 এর কীবোর্ড উচ্চতা সহ প্রেরণ করা হয়
- UIKeyboardWillSowowNotifications 259 এর কীবোর্ড উচ্চতা সহ প্রেরণ করা হয়
এই পরিস্থিতিতে একটি কোড-লাইনে সঠিকভাবে পরিচালনা করার জন্য আপনার প্রয়োজন:
UIKeyboardWillShowNotifications এবং UIKeyboardWillHideNotifications বিজ্ঞপ্তিগুলির বিরুদ্ধে পর্যবেক্ষকদের নিবন্ধ করুন :
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
বর্তমান কীবোর্ডের উচ্চতা ট্র্যাক করতে একটি বৈশ্বিক পরিবর্তনশীল তৈরি করুন:
CGFloat _currentKeyboardHeight = 0.0f;
বাস্তবায়ন keyboardWillShow কীবোর্ডের উচ্চতা বর্তমান পরিবর্তনের প্রতিক্রিয়া:
- (void)keyboardWillShow:(NSNotification*)notification {
NSDictionary *info = [notification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
CGFloat deltaHeight = kbSize.height - _currentKeyboardHeight;
_currentKeyboardHeight = kbSize.height;
}
দ্রষ্টব্য: আপনি দর্শনগুলির অফসেটিং অ্যানিমেট করতে চাইতে পারেন। তথ্য অভিধান দ্বারা অস্থির একটি মান ধারণ করে UIKeyboardAnimationDurationUserInfoKey । কীবোর্ড প্রদর্শিত হচ্ছে ঠিক একই গতিতে আপনার পরিবর্তনগুলি প্রাণবন্ত করতে এই মানটি ব্যবহার করা যেতে পারে।
রিসেট _ বর্তমানের কীবোর্ডহাইটটি কীবোর্ডউইলহাইডটি বাস্তবায়ন করুন এবং কীবোর্ডকে বরখাস্ত করার জন্য প্রতিক্রিয়া জানান:
- (void)keyboardWillHide:(NSNotification*)notification {
NSDictionary *info = [notification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
_currentKeyboardHeight = 0.0f;
}
keyboardFrameBeginRect
স্থানীয় স্থানাঙ্কে রূপান্তর করেন তবে এটির সহায়তা হতে পারে ।