2016-03-15 79 views
0

我正在使用TextFieldEffects定製UITextFields。創建文本框是非常簡單的..解除定製UITextField上的鍵盤

class ViewController: UIViewController { 

    override func viewDidLoad() { 
    super.viewDidLoad() 
     let textField = HoshiTextField(frame: textFieldFrame) 
     textField.placeholderColor = .darkGrayColor() 
     textField.foregroundColor = .lightGrayColor() 

     view.addSubView(textField) 
    } 
} 

解僱的鍵盤,我試圖做什麼,我通常會做,但遺憾的是沒有運氣。

func textFieldShouldReturn(textField: HoshiTextField) -> Bool { 
    self.view.endEditing(true) 
    return false 
} 

func dismissKeyboard() { 
    view.endEditing(true) 
} 

您有什麼建議嗎?

回答

2

確認的UITextFieldDelegate協議,您的ViewController並分配textField.delegate = self,然後執行以下的委託方法:

func textFieldShouldReturn(textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    return true 
    } 

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    self.view.endEditing(true) 
    } 

爲了更好的理解,請看看我的一小段代碼片段enter image description here

+0

通過添加委託=自我,'textFieldShouldReturn( )'開始工作。但是,'dismissKeyboard()'(單擊外部)仍然不起作用。 – senty

+0

實現觸摸開始方法 覆蓋FUNC的touchesBegan(觸摸:設置,withEvent事件:的UIEvent?){ self.view.endEditing(真) } – iMuzahid

+0

能否請您包括在你的答案,所以我可以接受它作爲正確答案? – senty

0

爲你的textField設置代理,也許它會工作!

+0

我該怎麼辦呢?它嵌入在UIViewController中。我嘗試使用textField.delegate = self,但它不讓我這樣做,因爲self是UIViewController。做這件事的正確方法是什麼?謝謝 – senty

+0

設置類似於: 'class YourViewController:UIViewController,UITextFieldDelegate' refer:http://sourcefreeze.com/uitextfield-and-uitextfield-delegate-in-swift/ –

1
class ViewController: UIViewController, UITextFieldDelegate //add this protocol 
{ 
... 
    func ... { 
    let textField = HoshiTextField(frame: textFieldFrame) 
    textField.placeholderColor = .darkGrayColor() 
    textField.foregroundColor = .lightGrayColor() 
    textField.delegate = self 
    } 
} 
+0

我也試過,但我收到錯誤「Can not分配'YourViewController'類型的值來鍵入'UITextFieldDelegate?'「什麼可能是解決方法? – senty

+0

@senty你可以請發佈錯誤行嗎?謝謝 – anhtu

+0

'textField.delegate = self'這是發生錯誤的地方。我認爲答案是在頂部定義它(就像我在Storyboard上創建UITextField一樣,我會按Ctrl +拖動,但是當我以編程方式創建它時,也許我需要在頂部定義它)。你怎麼看? – senty