В любом случае, вы не хотите связывать вид с другим. Правильный путь - это привязка представлений к контроллерам, и привязки становятся капризными, если вы не делаете правильные вещи.
Свяжите свойство кнопки enabled
со свойством контроллера. Пусть контроллер будет делегатом текстового представления, а когда выборки текстового представления изменятся , обновите свойство контроллера соответствующим образом.
Если текст (был | есть) не выделен, то массив (старый | новый) диапазонов выбора будет содержать ровно один объект NSValue, чей rangeValue
будет диапазоном нулевой длины. Этот диапазон соответствует точке вставки; его длина будет равна нулю (ничего не выбрано), но его местоположение может и не быть (оно будет там, где находится точка вставки).