Метка: Objective-C
Странное и нелогичное поведение методов копирования файлов copyItemAtURL:toURL:error: copyItemAtPath:toPath:error: И не только... При копировании файлов существуют как минимум две проблемы: Первая проблема: при копировании файлов, существующие файлы в месте назначения будут молча перезаписаны (хотя в описании метода сказано, что операция копирования будет остановлена с ошибой)! С каталогами всё ровно наоборот, работает, как заявлено. Чтобы избежать...
Подклассы в Objective C — Xcode Mac OS
Подклассы в Objective C, это один из важнейших механизмов программирования. Я не очень сильно буду распинаться, что это такое и с чем едят, но для того, чтобы у вас возникло общее понимание предмета, самые важные и основные моменты я обязательно здесь затрону. Моя основная цель, это дать конкретные ответы, на вполне конкретные вопросы, пусть даже на...
NSTrackingArea в Objective C — Xcode Mac OS
Class NSTrackingArea NSTrackingArea - Область представления, которая генерирует события отслеживания мыши и обновления курсора, когда указатель находится над этой областью. При создании объекта области отслеживания вы указываете прямоугольник (в системе координат вида), объект-владелец и один или несколько параметров вместе с (необязательно) словарем данных. После его создания вы добавляете объект области отслеживания в представление с помощью...
NSView в Objective C — Xcode Mac OS
Как узнать, что курсор мыши находится над NSView Чтобы отследить заход курсора мыши над текстовым редактором или его выход, есть несколько способов, но суть одна, необходимо реализовать следующие методы: mouseEntered:event, mouseExited:event. Но чтобы реализовать методы mouseEntered: и mouseExited:, нам необходимо использовать class NSTrackingArea. Вариант с подклассом NSView с методом viewWillMoveToWindow: MyView.h // // MyView.h // // // Created by...
NSMenu в Objective C — Xcode Mac OS
Как совсем отключить контекстное меню для NSTextField Правый клик мыши запускает всплывающее контекстное меню. Чтобы его отключить насовсем, необходимо создать подкласс для NSTextField (или для NSTextView) и в методе -textView:menu:forEvent:atIndex: нужно возвращать nil. //------------------------------------------------------------------------// // Отключение контекстного меню для NSTextView. // Правый клик мыши запускает всплывающее контекстное меню. Чтобы его // отключить насовсем, необходимо создать...
Работа с курсором в NSTextField Objective C — Xcode Mac OS
Как изменить цвет курсора для NSTextField Данный способ изменения цвета курсора для редактора полей не требует создания подкласса. Все работает в основном классе. Но у данного ниже способа есть один недостаток. Редактор полей - это один объект NSTextView, который является общим для всех текстовых полей в окне. Редактор полей совместно используется всеми элементами управления в окне...
NSTextView — Xcode Mac OS
Как очистить NSTextView или целиком заменить его содержимое NSTextView наследует всю работу с текстом от класса NSText, который имеет методы string/setString, работающие с его текстом. // Заменить все содержимое в NSTextView textView.string = @"New String"; // Или [textView setString:@"New String"]; Прим. Чтобы очистить все содержимое NSTextView, достаточно передать пустую строку. Как выключить Smart Quotes, Smart Dashes,...
NSTextView insertText method is deprecated. What is the replacement?
Вместо устаревшего метода - (void)insertText:(id)aString теперь используем следующий метод - (void)insertText:(id)aString replacementRange:(NSRange)replacementRange Использование нового метода insertText на практике // Было String: abcdef // Result: a++bcdef [textView insertText:@"++" replacementRange:NSMakeRange(1, 0)]; // Result: a++def [textView insertText:@"++" replacementRange:NSMakeRange(1, 2)]; // Result: a++f [textView insertText:@"++" replacementRange:NSMakeRange(1, 4)]; Указаны примеры для языка Objective-C
NSTextField в Objective-C — выделение текста, позиция курсора и другое
Как выделить весь текст в NSTextField // Выделить весь текст в NSTextField [textField selectText:self]; Как получить текущую позицию курсора и количество выделенных символов в NSTextField // Инициализируем NSText для управления текстом в NSTextField. NSText* fieldManageText = [textField currentEditor]; // Получаем текущее состояние позиции курсора и длины выделенного текста. NSRange range =fieldManageText.selectedRange; NSLog(@"range: location=%lu, length=%lu", range.location, range.length);...