2016-04-20 24 views
0

我試圖抵消UITextField,只要鍵盤處於活動狀態,它就能正常工作,直到我嘗試了Emoji-layout。有沒有辦法來檢測鍵盤輸入的類型,所以我可以找出高度差? 感謝 enter image description here抵消UITextField - 表情符號佈局

+0

您可以使用textfield委託來檢測用戶是否輸入了表情符號。見[這個問題](http://stackoverflow.com/questions/14329110/detect-if-a-user-has-typed-an-emoji-character-in-uitextview)。 – NSNoob

+0

@EICaptain我相信他的問題不是設置偏移量(他是用簡單的文本輸入來完成的)。他在處理表情符輸入時遇到了問題,因爲他希望從鍵盤上檢測**輸入類型** – NSNoob

回答

0

謝謝你們的幫助,我已經找到了答案: 我用這條線:

if let keyboardSize = (notifcation.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue().size{ 

我改的鍵值notifcation.userInfoUIKeyboardFrameEndUserInfoKey,並解決了問題。

1

您可以使用鍵盤通知

func getKeyboardHeight() { 
    let defaultCenter = NSNotificationCenter.defaultCenter() 
    defaultCenter.addObserver(self, selector: "keyboardWillChangeFrame:", name: UIKeyboardWillChangeFrameNotification, object: nil) 
} 

func keyboardWillChangeFrame(notification : NSNotification){ 
    let keyboardFrame = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue() 
    let keyboardheight = keyboardFrame.height 
} 

而且從所獲得的高度可以調整文本框的邊框。 查看圖像。 選擇表情符號之前的圖像1。表情符號後 enter image description here

圖像2被選擇

enter image description here

+0

這是顯示鍵盤外觀通知的代碼,而不是檢測是否鍵入emojis。如果您對該問題有任何疑問,請通過評論詢問OP – NSNoob

+1

您可以獲取鍵盤高度並動態調整文本框架 –

+0

他已經在做這件事。他的問題是,當用戶輸入他想要檢測的表情符號時,他遇到了問題**輸入類型** – NSNoob

1

代替使用UIKeyboardDidShowNotification/UIKeyboardDidHideNotification觀察員,使用UIKeyboardWillChangeFrameNotification觀察者,即燒製每個事件的:鍵盤隱藏,鍵盤顯示和鍵盤改變幀。

像這樣:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardAction), name: UIKeyboardWillChangeFrameNotification, object: nil)