You might be knowing that there is a field type called "Rich Text Field". This field allows you to format the text that you enter, add a URL, Insert pictures etc. It looks mostly like a big textbox with a editing toolbar at the top of the textbox. This is how a rich text field looks like.
The number of visible lines (the value that you specify while creating the field or editing it at Setup -> Object -> Field) controls the height of this field in a Visualforce Page. You may also use the style attribute to define your own height.
Rerender
Rich Text fields do not work with rerender. So, if you say that you have a button "Add another box", and clicking on this would rerender the panel and add one more rich text field, then this wont work. You will have to remove the "rerender" attribute and it works.
You should not have the "immediate=true" attribute as well on the commandbutton. This causes the value of the existing rich text fields to be lost.
So, if you have a button in a page which adds more "Rich Text Fields" or does some other rerendering, remove all the rerenderings and do a full page refresh. If you still face issues, remove the "immediate=true" attribute and try again.
Whenever you create an Apex Class (in Visualforce terms it may be called a controller or an extension), and when you want to move your Apex Class to production it is necessary that you have a Test Method for your Apex Class. Moreover, the test coverage for your Apex Class should be NOT less than 75%.
Why is this and What's the need???
Unit test methods as it is also called, is in place to ensure that your apex code does not cause any undesired results in your production instance. A Unit Test method can be imagined of a Test script wherein you feed sample data and execute your Apex Class against the sample data. When you do so, you come to know the situations in which your Apex Class could fail or produce undesired results.
Imagine you have an Apex Class which performs something like outlined in the Flow Diagram below.
In such a case, your Test Method will first give the sample value (a =3, b=2) and run the Apex Class. This time you cover the "Yes" branching. The second time you will give the value ( a =2, b =3). This time you cover the "No" branching. Now, you have given sample data such that it covers both outcomes of a condition.
This concept is called "Apex Test Coverage". Now, that you have given sample data twice and covered both outcomes your test coverage would be 100%. Had you given only one set of sample values, your test coverage would be 50%.
The Need:
Salesforce wants you to ensure that the Apex Code that you deploy to your production instance will not cause any unexpected behavior to you as well as to the them. That's the simple reason behind this. Writing test methods becomes frustrating at times, but still you will have to do it.
Note: Part 2 to be published soon.