2014-09-14 19 views
6

Tôi đang chạy cùng mã trên một thiết bị IOS 7 và IOS 8 với khác nhau kết quảkeyboardWillShow trong iOS8 với UIKeyboardWillShowNotification

Với một màn hình với hai lĩnh vực văn bản

Trong IOS 7 nếu tôi chạm vào lĩnh vực đầu tiên keyboardWillShow được gọi nhưng nếu tôi chạm vào trường thứ hai khi bàn phím đã được hiển thị, nó không được gọi là lần thứ hai.

Trong bàn phím iOS 8WillShow được gọi hai lần

Hành vi được ghi nhận?

+0

là một trong những lĩnh vực mật khẩu? Sau đó, có thể [thread] này (https://devforums.apple.com/message/1029338#1029338) sẽ giúp bạn. – dasdom

+0

@dasdom khá chính xác, tôi đã tắt chỉnh sửa và kiểm tra chính tả trong Interface Builder và nó không được gọi hai lần. Trả lời câu hỏi và tôi sẽ đánh dấu câu hỏi là đúng. –

Trả lời

5

Lý do là sự khác biệt trong bàn phím. Nếu trường thứ hai là trường mật khẩu, điều này có nghĩa là có một bàn phím khác nằm dưới mui xe. Do đó thông báo được gửi hai lần.

+1

Nó không phải là một sự thay đổi trong lĩnh vực mật khẩu. Mỏ được chuyển từ UITextField sang UITextView, và khác biệt duy nhất là thiết lập Correction đã được thiết lập là "No", và sau đó nó được đặt thành "Default". Tôi đã chuyển "Không" thành "Mặc định", và bây giờ nó đã ổn. – CyberMew

0

tốt nhất là lắng nghe cho keyboardWillChangeFrameNotification

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrameNotification:) name:UIKeyboardWillChangeFrameNotification object:nil]; 
+2

Tôi vừa thử rằng trên iOS 9.1 Beta và người quan sát 'UIKeyboardWillChangeFrameNotification' được kích hoạt mỗi lần chọn một UITextField mới cho dù bàn phím đã được hiển thị hay chưa. Lưu ý rằng tôi có 3 trường văn bản và tất cả đều sử dụng các loại bàn phím khác nhau (tên người dùng, email, mật khẩu). Có lẽ nếu các trường văn bản đều sử dụng cùng một bàn phím thì người quan sát chỉ được kích hoạt một lần ... – Litome

+0

tôi cũng nhận thấy rằng, bạn cần phải có khung kết thúc và bắt đầu và so sánh nếu chúng bằng nhau, nếu có, bạn có khả năng không cần để làm bất cứ điều gì –

+0

@Litome Tôi đang gặp vấn đề tương tự ở đây. Bạn đã cố gắng khắc phục vấn đề đó chưa? –

Các vấn đề liên quan