Details
Description
Steps to reproduce:
1. Extend UITextField to override truncateToFit(), for example to implement custom truncation logic (truncate from start, collapse paths, etc.)
2. Extend Label to use new UITextField implementation.
Actual Results:
1. Members untruncatedText and truncationIndicatorResource used in truncateToFit() are private, making them inaccessible to the inheriting class. Hence the functionality they provide either needs to be re-implemented by the extender at the cost of extra code, or removed.
2. Label does not provide a way to specify the Class to use for the internal UITextField. Overriding createTextField() is not trivial as it again uses private members.
Expected Results:
1. UITextField members should be protected, allowing access by extending class.
2. Label should to provide a way to specify a different Class to use for the internal UITextField. This can be done by making it possible to override createTextField() by changing private members to protected, or through some other mechanism.
Workaround (if any):
Re-implement the functionality of private UITextField members, or remove this functionality from the inheriting class.
Re-implement the Label control in its entirety, using the new implementation of UITextField.