Hello everybody 🙂
Chắc hẳn mọi người điều biết trong iOS khi muốn nhập giá trị đầu vào thì sẽ sử dụng UITextField và UITextView. Với UITextFiled thì ta chỉ có thể nhập giá trị trên một dòng còn với UITextView thì có thể nhập giá trị trên nhiều dòng, có thể scroll vì UITextView là extends từ UIScrollView mà 🙂. Tuy nhiên khi sử dụng hai View này thì ta còn thấy một điểm khác nhau nữa, đó là với UITextView Apple đang không hỗ trợ thuộc tính placeholder còn với UITextField thì có luôn placeholder ngon như này 🙁.
Tại sao lại có sự bất công này???
Có lẽ do Apple thích thế thôi nhỉ? 🙂. Thực ra cũng có một quan điểm cho rằng lý do mà UITextView không có placeholder là bởi vì khi lập trình các dev thường sẽ setup một header ở bên trên UITextView để giải thích rõ tại UITextView này sẽ cần ghi nội dung gì rồi nên không cần phải thêm placeholder để làm gì nữa cả, việc này cũng khá dễ hiểu tại vì khi xét tới bản chất của UITextView đó là nơi sẽ cho phép người dùng nhập một content gì đó sẽ mất nhiều dòng và ngốn nhiều khá thời gian. Thật tai hại khi người dùng đang nhập content của họ và bỗng dưng họ quên mất rằng nội dung chính phải nhập là gì 🙂 khi đó chỉ còn cách xoá hết đi và xem lại placeholder (nếu có), với những người đãng trí chắc điều này sẽ là một cơn ác mộng 🙂
Có nên sử dụng placeholder cho UITextView?
Một số trường hợp cũng nên dùng placeholder cho UITextView khi mà không có đủ không gian để thêm một header cho UITextView và nếu thêm vào cũng không được đẹp mắt. Chẳng hạn trong trường hợp này:
Như hình bên trên thanh iMessage trong ứng dụng tin nhắn kia là một UITextView và có placeholder = "iMessage"
Kết luận!
Qua bài này, có thể thấy rằng việc sử dụng UITextView thì sẽ không được Apple hỗ trợ thuộc tính placeholder. Điều này có thể sẽ gây khó khăn cho những bạn mới lập trình về iOS 🙂. Tuy nhiên, với một lập trình viên thì không gì là không thể làm được phải không nào? Khi Apple không hỗ trợ thuộc tính placeholder cho UITextView thì ta cũng có thể tự làm điều đó hộ Apple được mà 🙂. Ở phần sau, mình sẽ hướng dẫn các bạn một cách để có thể thêm placeholder cho UITextView thông qua việc tạo ra một app đơn giản như thế này: