2013-02-05 65 views
5

我有一個UITextField,但我想控制它何時被聚焦以及何時不聚焦。禁用觸摸但不是所有用戶在UITextField上的交互

爲了實現這一點,我需要能夠在該文本字段上阻止觸摸事件。我知道我可以在它前面放一個按鈕並手動進行,但我想知道是否有任何方法可以禁用元素上的觸摸。

非常感謝。

回答

13

似乎沒有辦法用UITextField屬性來阻止觸摸。我通過在文本字段上放置UIView來阻止觸摸,從而解決了這個問題。我使用屬性檢查器將UIView設置爲「清除顏色」。非常適合我的應用程序。

1

userInteractionEnabled屬性怎麼樣?

+1

這也可以通過鍵盤,阻止你輸入的文字,我需要。我只想停止觸摸。不是**全部**互動。 :) –

+0

我不明白...如果你禁用觸摸,那麼用戶將無法觸摸它,無論如何帶出鍵盤,所以有什麼區別? – borrrden

+0

但我可以手動調用'becomeFirstResponder'來展示鍵盤。 :) –

0

我不得不在編輯,所以becomeFirstResponder之前(光標互動)我設置isUserInteractionEnabled = TRUE並在最終編輯設置虛假

@IBAction func editTapped(_ sender: UIButton) { 
    textField.isUserInteractionEnabled = true 
    textField.becomeFirstResponder() 
} 


func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { 
    print(textField.textValue) 

    textField.isUserInteractionEnabled = false 

    return true 
} 
相關問題