2013-02-05 37 views
5

Tôi có UITextField nhưng tôi muốn kiểm soát thời điểm nó tập trung và khi nó không được tập trung.Vô hiệu hóa chạm nhưng không phải tất cả tương tác của người dùng trên UITextField

Để đạt được điều này, tôi cần có khả năng chặn sự kiện chạm trên trường văn bản đó. Tôi biết tôi có thể chỉ cần đặt một nút ở phía trước của nó và tự làm điều đó, nhưng tôi muốn biết nếu có bất kỳ cách nào để chỉ vô hiệu hóa chạm vào yếu tố.

Rất cám ơn.

Trả lời

13

Dường như không có cách nào để chặn chạm với thuộc tính của UITextField. Tôi đã giải quyết vấn đề này bằng cách đặt UIView trên trường văn bản để chặn các lần chạm. Tôi đặt UIView thành "Clear Color" bằng cách sử dụng thanh tra thuộc tính. Hoạt động tốt cho ứng dụng của tôi.

1

Làm thế nào về tài sản userInteractionEnabled?

+1

Đó cũng dừng bạn từ nhập văn bản thông qua một bàn phím, mà tôi nhu cầu. Tôi chỉ muốn dừng chạm. Không ** tất cả ** tương tác. :) –

+0

Tôi không hiểu ... nếu bạn vô hiệu hóa chạm, sau đó người dùng sẽ không thể chạm vào nó để đưa ra bàn phím anyway vậy sự khác biệt là gì? – borrrden

+0

Nhưng tôi có thể gọi thủ công 'trở thànhFirstResponder' trên đó để đưa ra bàn phím. :) –

0

tôi phải có sự tương tác con trỏ trong khi chỉnh sửa, vì vậy trước khi becomeFirstResponder() tôi đặt isUserInteractionEnabled = true và chỉnh sửa cuối đặt nó vào sai

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


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

    textField.isUserInteractionEnabled = false 

    return true 
} 
Các vấn đề liên quan