NSTextFinder
NSTextFinder
класс обеспечивает дополнительный поиск и интерфейс находить-панели замены в представлении, обычно представлении прокрутки.
Класс служит контроллером для стандартного Какао, находят панель. NSTextFinder
класс взаимодействует в большой степени с a client
объект, поддерживающий NSTextFinderClient
протокол. Объект клиента обеспечивает доступ к искавшему содержанию и обеспечивает визуальную обратную связь для поисковой работы.
Все пункты меню, связанные с нахождением (Находят …, Найдите, Затем, Считают Предыдущими, Выбор Использования для Находки, и т.д.) должен иметь то же действие, performTextFinderAction:
, который отправляется вниз цепочку респондента в стандартном методе.
Реализация панели находки
Респондент performTextFinderAction:
ответственно за создание и владение экземпляром NSTextFinder
. Прежде чем любые другие сообщения отправляются в NSTextFinder
, необходимо установить client
свойство к объекту, реализующему NSTextFinderClient
протокол.
Каждый элемент интерфейса пользователя, используемый для нахождения, имеет различное значение тега, соответствующее надлежащему значению в NSTextFinderAction. По получении performTextFinderAction:
сообщение, респондент должен вызвать следование NSTextFinder
экземпляр:
- (void)performAction:(NSTextFinderAction)action;
Этот метод определит желаемое действие от тега и сделает различные обратные вызовы к client
выполнять то действие. Эти обратные вызовы определяются в NSTextFinderClient
протокол.
Проверка происходит подобным образцом. Респондент должен реализовать validateUserInterfaceItem:
и, когда действие элемента performTextFinderAction:
метод, это должно передать тег элемента следующему методу и возвратить результат:
- (BOOL)validateAction:(NSTextFinderAction)action;
Этот метод вызовет требуемые клиентские методы для определения, каков надлежащий ответ должен быть. Эти обратные вызовы также определяются в NSTextFinderClient
протокол.
Когда действие будет выполняться, текстовое средство поиска попросит, чтобы искал его клиент строку. Существует два способа, которыми клиент может обеспечить эту строку. Это может или реализовать string
метод, и просто возвращается NSString
экземпляр, или это может реализовать следующие методы: stringAtIndex:effectiveRange:endsWithSearchBoundary:
и stringLength
.
Эти методы позволяют использовать текстовое средство поиска с данными, которые не могут быть легко или эффективно сглажены в единственную строку. В первом методе клиент должен возвратить строку, содержащую символ в поданном индексе как концептуальная связь всех строк, которые должны искаться.
Например, если у клиента были строки “Быстрое”, “коричневая лиса”, “перепрыгнул через ленивое”, и «собаку» и a NSTextFinder
экземпляр запрашивает строку в индексе 18, тогда клиент должен возвратить «коричневую лису”. Если бы все строки были связаны, то вместе был бы ‘x’ у «лисы». Кроме того, клиент должен возвратиться, ссылкой через outRange
параметр, диапазон измерений возвращающейся строки. В этом примере диапазон “коричневой лисы” {9, 10}, потому что в предполагаемой связи подстрока запускается в индексе 9 и является 10 символами долго.
В некоторых случаях не желательно для соответствия быть найденным, который перекрывает многократные строки, возвращенные stringAtIndex:effectiveRange:endsWithSearchBoundary:
метод. Например, предположите, что у клиента есть список имен как «Джон Доу» и «Джейн Доу», и т.д. Обычно, если строка связывается вместе как так: «Джон Доу Джейн Доу», затем поиск «Доу Джейн» успешно выполнился бы. Для предотвращения этого часто нежелательное поведение клиент должен возвратиться YES
true
, ссылкой, через outFlag
параметр, при возврате каждой отдельной строки. Это указывает, что существует граница между текущей строкой и следующей строкой, которая не должна быть пересечена при поиске соответствия.
Один из двух подходов (реализующий string
метод stringAtIndex:effectiveRange:endsWithSearchBoundary:
и stringLength
методы), должен быть реализован клиентом или NSTextFinder
экземпляр не будет функционировать. Если все три метода реализованы, stringAtIndex:effectiveRange:endsWithSearchBoundary:
будет использоваться по умолчанию.
Текстовое средство поиска может запросить дополнительную информацию от client
объект выполнить действие, или это может потребовать client
выполнять некоторые части действия от своего лица. Методы и свойства, описанные в текстовых Клиентских Требованиях Реализации Средства поиска, описывают рычаги, которых текстовое средство поиска требует для каждого из действий, которые это поддерживает. Если клиент не реализует один из этих методов или свойств, то действие, требующее его, будет отключено.
Текстовые клиентские требования реализации средства поиска
Текстовый клиент средства поиска может реализовать следующие свойства для validateAction:
метод: isSelectable
, allowsMultipleSelection
, и editable
. Если какое-либо из этих свойств не реализовано, значение YES
true
принят. Возврат NO
false
от любого из этих методов отключит действия, требующие их. Для получения дополнительной информации об этих свойствах посмотрите Ссылку на протокол NSTextFinderClient.
Следующая реализация требуется текстовым клиентом поддерживать указанные действия:
NSTextFinderClient
протокол должен реализоватьfirstSelectedRange
свойство для поддержки следующей функциональности:NSTextFinderActionNextMatch
,NSTextFinderActionPreviousMatch
,NSTextFinderActionReplace
,NSTextFinderActionReplaceAndFind
, иNSTextFinderActionSetSearchString
действия.client
реализацияfirstSelectedRange
потребности возвратить его первый выбранный диапазон, или {индекс, 0} для указания расположения точки вставки, если нет никакого выбора.selectedRanges
свойство требуется дляNSTextFinderActionReplaceAllInSelection
,NSTextFinderActionSelectAll
, иNSTextFinderActionSelectAllInSelection
действия. Массив должен содержатьNSRange
структуры перенеслись вNSValue
экземпляры.scrollRangeToVisible:
метод используется многими действиями, но строго не требуется никем выполнить правильно.Клиентский протокол
shouldReplaceCharactersInRanges:withStrings:
,replaceCharactersInRange:withString:
иdidReplaceCharacters
методы используютсяNSTextFinderActionReplace
,NSTextFinderActionReplaceAll
,NSTextFinderActionReplaceAllInSelection
, иNSTextFinderActionReplaceAndFind
действия. Экземпляр NSTextFinder не имеет возможности непосредственно внести изменения вclient
содержание, таким образом,client
ответственно за выполнение операций замены в этих методах.Прежде чем работа замены выполняется,
NSTextFinder
экземпляр вызываетshouldReplaceCharactersInRanges:withStrings:
метод, чтобы определить, должна ли замена иметь место. Если это возвращаетсяNO
false
, тогда данный диапазон не будет заменен. Если возвращается методYES
true
, или не реализован, тогдаNSTextFinder
экземпляр вызоветreplaceCharactersInRange:withString:
метод, сообщаяclient
выполнить замену. Наконец,didReplaceCharacters
метод вызовут, если реализовано, чтобы указать, что была завершена замена. ДляNSTextFinderActionReplaceAll
действия, эти методы можно вызвать многократно, запускающийся с конца строки и перемещающийся к началу, для сохранения индексов соответствий, предшествующих текущему.
Инкрементная поисковая поддержка
Типичная функция, использованная в сочетании с панелью находки, является инкрементным поиском. Эта функция позволяет пользователям сразу найти соответствия, поскольку они вводят. В OS X v10.7, текстовое средство поиска обеспечивает эту функцию своих клиентов с минимальным дополнительным API.
Инкрементный поиск может быть включен путем установки incrementalSearchingEnabled
свойство YES
true
. Одно только это свойство достаточно, чтобы начать искать инкрементно.
Для улучшенной скорости отклика, когда документ будет достаточно длинен, текстовое средство поиска будет искать документ в фоновом режиме. Для обеспечения потокобезопасности клиент, использующий инкрементный поиск, должен вызвать noteClientStringWillChange
метод перед любыми изменениями сделан к строке, предоставленной для текстового средства поиска.
Во время инкрементного поиска выделяются все видимые соответствия. Если client
объект, соответствующий NSTextFinderClient
протокол реализует только для чтения visibleCharacterRanges
свойство, тогда по умолчанию серое наложение появится по Вашему представлению содержания контейнера панели находки с прозрачными областями для каждого соответствия. Это представление должно быть суперпредставлением всех подпредставлений, о которых сообщает текстовый клиент средства поиска. NSScrollView
класс уже реализует это свойство, таким образом, только необходимо реализовать это свойство при использовании различного контейнерного класса.
Наконец, этот режим также требует тех же двух NSTextFinderClient
методы протокола, использующиеся для отображения индикатора находки: contentViewAtIndex:effectiveCharacterRange:
и rectsForCharacterRange:
быть реализованным. Однако реализация этих методов идентична в обеих целях, таким образом, никакая дополнительная работа не требуется, чтобы поддерживать инкрементный поиск.
Замена текста
Методы замены текста:shouldReplaceCharactersInRanges:withStrings:
, replaceCharactersInRange:withString:
, и didReplaceCharacters
используются заменой, заменяют все, заменяют все в разделе, и заменяют и находят действия.
Прежде чем работа замены выполняется, NSTextFinder
экземпляр вызывает client
объект shouldReplaceCharactersInRanges:withStrings:
метод, чтобы определить, должна ли замена иметь место. Если это возвращается NO
false
, тогда символы в данных диапазонах не будут заменены. Если возвращается метод YES
true
, или не реализован, тогда второй метод, replaceCharactersInRange:withString:
, то, чтобы давать команду клиенту выполнить замену. Наконец, didReplaceCharacters
, если реализовано, вызывается, чтобы указать, что была завершена замена.
Для замены все действия эти методы вызовут многократно, запускающийся с последнего соответствия и перемещающийся к первому, для сохранения индексов соответствий, предшествующих текущему.
Текстовый контейнер средства поиска
Для отображения панели находки контейнер для панели находки должен быть указан. Контейнер является объектом, соответствующим NSTextFinderBarContainer
протокол. Вы указываете контейнер панели находки использование следующего класса NSTextFinder findBarContainer
свойство.
Когда новый экземпляр NSTextFinder будет создан и проинструктирован для отображения панели находки, он создаст представление для панели находки и присвоит это контейнеру через NSTextFinderBarContainer
класс findBarView
свойство. Когда контейнер освобожден, контейнер тогда владеет тем представлением и должен выпустить его. Контейнер должен сделать панель находки видимой когда контейнер findBarVisible
свойство установлено в YES
true
. Контейнер должен реализовать findBarViewDidChangeHeight
метод, таким образом, это может изменить местоположение панели находки, когда ее высота изменяется, обычно в ответ на пользовательское действие.
Реализация классами набора приложения
Два класса Набора Приложения уже предоставляют поддержку для NSTextFinder
класс, включая: NSScrollView
и NSTextView
классы.
Прокрутите поддержку представления панели находки
В OS X v10.7, NSScrollView
класс соответствует NSTextFinderBarContainer
протокол для поддержки панели находки для любого представления документа, искавшего панелью находки. Панель находки может быть расположена любой выше или ниже представления документа путем присвоения одного из значений NSScrollViewFindBarPosition
константы, объявленные в NSScrollView
к NSScrollView
класс setFindBarPosition:
метод.
Текстовая поддержка представления панели находки
Класс NSTextView также теперь поддерживает панель находки. Панель находки может быть включена или отключена на текстовом представлении со следующими методами: setUsesFindBar:
и usesFindbar
.
Начиная с OS X v10.5, NSTextView
класс использовал анимированный индикатор находки, чтобы дать обратную связь пользователю об успешном действии находки. Индикатор находки мог быть активирован вручную на текстовом представлении через showFindIndicatorForRange:
метод.
Предоставлять эту функциональность текстовым клиентам средства поиска в OS X v10.7, NSTextFinder
класс показывает индикатор находки в подходящее время автоматически при выполнении находки. Однако текстовое средство поиска должно знать, где показать индикатор, и этому нужна помощь в рисовании текстового содержания индикатора находки. Во время инкрементного поиска класс NSTextFinder должен также знать расположения всех видимых соответствий, таким образом, это может выделить их также. Следующие дополнения метода к NSTextFinderClient
протокол обеспечивает эти возможности: contentViewAtIndex:effectiveCharacterRange:
и rectsForCharacterRange:
.
contentViewAtIndex:effectiveCharacterRange:
метод вызывают для определения то, что просматривает содержание, выведен на экран в, т.е. по которому будет выведен на экран индикатор находки. Так как содержание может потенциально быть распространено по многократным представлениям (как NSLayoutManager
класс, поддерживающий многократные текстовые представления), метод просит представление в данном индексе и полный спектр строки, содержащейся тем представлением.
В rectsForCharacterRange:
метод, клиент должен определить и возвратить прямоугольники, в которых содержание с данным диапазоном выведено на экран в contentView
. Данный диапазон, как гарантируют, не охватит многократные представления содержания. Возвращенные прямоугольники говорят экземпляр NSTextFinder, где соответствующий диапазон найден, таким образом, это может показать индикатор находки там.
NSTextFinder
и NSView
классы обработают индикатор находки правильно когда contentView
изменен, перемещен или удален из иерархии представления. Если Ваше представление содержания прокрутка сделано NSScrollView
, индикатор находки будет также обработан для Вас во время прокрутки. Вне этих случаев могут быть некоторые обстоятельства, где индикатор находки должен быть сразу отменен и скрыт, такой как тогда, когда содержание или выбор представления изменяются без ведома текстового средства поиска. Индикатор находки может быть отменен с помощью NSTextFinder
cancelFindIndicator
метод. Если Ваш документ не прокручивается NSScrollView
, тогда необходимо установить findIndicatorNeedsUpdate
свойство к YES
true
.
NSTextFinder ответственен за рисование желтой фоновой внешней панели индикатора находки, но представление должно обеспечить содержание. NSTextFinder установит контекст получения и заставит contentView вовлекать его. Существует два способа, которыми это может произойти.
NSTextFinder
экземпляр вызоветclient
объектdrawCharactersInRange:forContentView:
метод, если реализовано. Клиент должен тогда нарисовать требуемые символы (или попросить, чтобы содержание представления нарисовало символы, который предоставлен как удобство) в источнике текущего контекста. Если требуемый диапазон символов частично пересекает диапазон глифа, клиент может нарисовать весь глиф, при необходимости для производительности.Если
drawCharactersInRange:forContentView:
метод не реализован, тогда экземпляр NSTextFinder будет использовать нормальные механизмы рисования представления.contentView
не должен принимать любые дополнительные меры, чтобы заставить это произойти
В OS X v10.7, класс NSTextView также предоставляет инкрементную поисковую поддержку. Это отключено по умолчанию, но может быть включено путем установки incrementalSearchingEnabled
свойство к YES
true
. Кроме того, так как инкрементный поиск требует панели находки, usesFindBar
должен быть установлен в YES
true
для инкрементного поиска, чтобы быть происходят.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSObject
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.7 и позже.
-
Инициализирует и возвращает новое
NSTextFinder
экземпляр.Объявление
Swift
init()
Objective C
- (instancetype)init
Возвращаемое значение
Инициализированный экземпляр NSTextFinder.
Обсуждение
Это - назначенный инициатор для
NSTextFinder
класс.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Выполняет указанный текст, находящий действие.
Объявление
Swift
func performAction(_
op
: NSTextFinderAction)Objective C
- (void)performAction:(NSTextFinderAction)
op
Параметры
op
Текст, находящий действие. Посмотрите
NSTextFinderAction
для возможных значений.Обсуждение
Объекты, отвечающие на
performTextFinderAction:
обычно вызывайтеvalidateAction:
гарантировать, что действие допустимо и затем вызываетperformAction:
если проверка успешна.При вызове
validateAction:
иperformAction:
элемент или тег отправителя должны быть переданы как параметр. Условно,sender
параметру для этого метода установят NSTextFinderAction как его тег. Респондент, получающий этот метод, должен передать тег как действие для этого метода:- (void)performTextFinderAction:(id)sender {
[self.textFinder performAction:[sender tag]];
}
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Позволяет проверку действия находки перед выполнением.
Объявление
Swift
func validateAction(_
op
: NSTextFinderAction) -> BoolObjective C
- (BOOL)validateAction:(NSTextFinderAction)
op
Параметры
op
Тег отправителя.
Возвращаемое значение
YES
true
если работа допустима; иначеNO
false
.Обсуждение
Респонденты
NSResponder
методperformTextFinderAction:
должен вызвать этот метод.Этот метод должна вызвать реализация
validateUserInterfaceItem:
должным образом проверить элементы с действиемperformTextFinderAction:
. РеспондентvalidateUserInterfaceItem:
илиvalidateMenuItem:
реализация должна передать тег как действие для этого метода..Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Сразу отменяет индикатор находки.
Объявление
Swift
func cancelFindIndicator()
Objective C
- (void)cancelFindIndicator
Обсуждение
Могут быть некоторые обстоятельства, где индикатор находки должен быть сразу отменен или скрыт, такой как тогда, когда содержание или выбор представления изменяются без ведома текстового средства поиска. Этот метод сразу отменит текущий индикатор находки.
NSTextFinder
иNSView
когда довольное представление будет изменено, перемещено или удалено из иерархии представления, классы обработают индикатор находки правильно. Если Ваше представление содержания прокрутка сделаноNSScrollView
, индикатор находки будет также обработан для Вас во время прокрутки.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
findBarContainer findBarContainer
СвойствоУказывает контейнер панели находки.
Объявление
Swift
@IBOutlet unowned(unsafe) var findBarContainer: NSTextFinderBarContainer?
Objective C
@property(assign) IBOutlet id<NSTextFinderBarContainer> findBarContainer
Обсуждение
Это свойство должно быть установлено поддерживать панель находки.
Когда панель находки должна быть показана,
NSTextFinder
вызываетshowFindBarView:
наfindBarContainer
объект, передавая представление для панели находки, которую это должно вывести на экран где-нибудь, который связан соответственно с искавшим содержанием.NSScrollView
реализации классаNSTextFinderBarContainer
протокол и является корректным местом для отображения панели находки при большинстве обстоятельств. Контейнер может свободно изменить представление width панели находки и источник, но не его высота.Если это свойство не установлено, то панель находки не может быть показана.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Объект, обеспечивающий целевую строку поиска, находит расположение панели и методы обратной связи.
Объявление
Swift
@IBOutlet unowned(unsafe) var client: NSTextFinderClient?
Objective C
@property(assign) IBOutlet id<NSTextFinderClient> client
Обсуждение
NSTextFinder
класс экземпляра должен быть связан с объектом клиента, реализующим протокол NSTextFinderClient для функционирования. Клиент ответственен за обеспечение строки, которая будет искаться, расположение для панели находки и методы, управляющие обратной связью пользователю о результатах поиска.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Вызовите этот метод, когда изменится искавшее содержание.
Объявление
Swift
func noteClientStringWillChange()
Objective C
- (void)noteClientStringWillChange
Обсуждение
Когда инкрементный поиск включен, этот метод нужно вызвать, когда известно, что будет изменена строка клиента. Этот метод нужно вызвать, прежде чем клиентская строковая модификация имеет место.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Вызовите, чтобы указать, что потребности индикатора находки, обновляющие если не содержавший в прокрутке, просматривают.
Объявление
Swift
var findIndicatorNeedsUpdate: Bool
Objective C
@property BOOL findIndicatorNeedsUpdate
Обсуждение
Если
client
документ объекта не прокручивается экземпляромNSScrollView
, тогда установите это свойство вYES
true
когда прокрутка происходит, чтобы заставить индикатор находки быть обновленным соответственно.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Переопределите этот метод для рисования пользовательского выделения.
Объявление
Swift
class func drawIncrementalMatchHighlightInRect(_
rect
: NSRect)Objective C
+ (void)drawIncrementalMatchHighlightInRect:(NSRect)
rect
Параметры
rect
Прямоугольник, который должен быть нарисован выделенный в текущей системе координат.
Обсуждение
Если
incrementalSearchingShouldDimContentView
NO
false
, рекомендуется выделить инкрементные соответствия в Вашем собственном представлении. Однако некоторые приложения могут принять решение показать инкрементные поисковые значения другим способом.Этому методу не рекомендуют быть переопределенным. Текстовое средство поиска никогда не вызывает его. Представление вызывает его для получения стандартного поведения выделения. Рекомендуется, чтобы использование представлений этот метод действительно нарисовало выделение для непротиворечивости и позволить Набору Приложения настраивать поведение в будущем. Если представление хочет пользовательское получение, то это должно быть реализовано представлением.
Образец общего использования для этого: нарисуйте фон, нарисуйте инкрементные выделения соответствия для
incrementalMatchRanges
, и затем составьте текст.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Массив инкрементных поисковых соответствий отправил на основной очереди, которые были найдены во время фонового поиска. (только для чтения)
Объявление
Swift
var incrementalMatchRanges: [AnyObject] { get }
Objective C
@property(readonly, copy) NSArray *incrementalMatchRanges
Обсуждение
Этот массив периодически обновляется на основной очереди, поскольку инкрементная поисковая работа на очереди фоновых задач находит соответствия. Когда incrementalSearchingShouldDimContentView, можно использовать это свойство
NO
false
знать, где нарисовать выделения для инкрементных соответствий.Если никакой инкрементный поиск не будет активен, или нет никаких найденных соответствий, то этот массив будет пуст. Если инкрементный поиск в настоящее время произойдет, но еще не завершитесь, то это возвратит все диапазоны, найденные до сих пор.
Этот массив является значением ключа, наблюдающим совместимый, и, как могут наблюдать, знает, когда обновить Ваши выделения. Когда
NSKeyValueObservingOptionNew
иNSKeyValueObservingOptionOld
опции используются, значение ключа, замечая, что словарь изменения обеспечивает диапазоны (и их индексы), которые добавлены или удалены. Это позволяет аннулированию минимальной области, необходимой синхронизировать выделения с результатами получателя.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Определяет, включен ли инкрементный поиск.
Объявление
Swift
var incrementalSearchingEnabled: Bool
Objective C
@property(getter=isIncrementalSearchingEnabled) BOOL incrementalSearchingEnabled
Обсуждение
Если
YES
true
, тогда панель находки сделает инкрементные поиски. Если это возвращаетсяNO
false
, тогда панель находки будет регулярно вести себя.Значение по умолчанию
NO
false
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Определяет тип инкрементной поисковой обратной связи, которая будет представлена
Объявление
Swift
var incrementalSearchingShouldDimContentView: Bool
Objective C
@property BOOL incrementalSearchingShouldDimContentView
Обсуждение
Если
YES
true
, тогда, когда инкрементный поиск начинается,findBarContainer
родитель экземпляраcontentView
будет недоступен, за исключением расположений инкрементных соответствий. ЕслиNO
false
, тогда инкрементные соответствия не будут выделены автоматически, но можно использовать incrementalMatchRanges для выделения соответствий сами.Значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
Типы данных
-
Эти константы указывают теги элемента интерфейса пользователя, соответствующие, находят действие. Эти константы передаются
performTextFinderAction:
метод, респондент вызовет надлежащий метод для тега. Тот метод будет, в свою очередь, определить желаемое действие и вызвать надлежащий метод вNSTextFinder
объектNSTextFinderClient
протокол.Объявление
Swift
enum NSTextFinderAction : Int { case ShowFindInterface case NextMatch case PreviousMatch case ReplaceAll case Replace case ReplaceAndFind case SetSearchString case ReplaceAllInSelection case SelectAll case SelectAllInSelection case HideFindInterface case ShowReplaceInterface case HideReplaceInterface }
Objective C
enum { NSTextFinderActionShowFindInterface = 1, NSTextFinderActionNextMatch = 2, NSTextFinderActionPreviousMatch = 3, NSTextFinderActionReplaceAll = 4, NSTextFinderActionReplace = 5, NSTextFinderActionReplaceAndFind = 6, NSTextFinderActionSetSearchString = 7, NSTextFinderActionReplaceAllInSelection = 8, NSTextFinderActionSelectAll = 9, NSTextFinderActionSelectAllInSelection = 10, NSTextFinderActionHideFindInterface = 11, NSTextFinderActionShowReplaceInterface = 12, NSTextFinderActionHideReplaceInterface = 13 }; typedef NSInteger NSTextFinderAction;
Константы
-
ShowFindInterface
NSTextFinderActionShowFindInterface
Интерфейс панели находки выведен на экран.
Доступный в OS X v10.7 и позже.
-
NextMatch
NSTextFinderActionNextMatch
Следующее соответствие, если таковые имеются, выведено на экран.
Доступный в OS X v10.7 и позже.
-
PreviousMatch
NSTextFinderActionPreviousMatch
Предыдущее соответствие, если таковые имеются, выведено на экран.
Доступный в OS X v10.7 и позже.
-
ReplaceAll
NSTextFinderActionReplaceAll
Все случаи строки заменяются.
Доступный в OS X v10.7 и позже.
-
Replace
NSTextFinderActionReplace
Заменяет единственный экземпляр строки.
Доступный в OS X v10.7 и позже.
-
ReplaceAndFind
NSTextFinderActionReplaceAndFind
Заменяет единственный экземпляр строки и ищет следующее соответствие.
Доступный в OS X v10.7 и позже.
-
SetSearchString
NSTextFinderActionSetSearchString
Устанавливает строку поиска.
Доступный в OS X v10.7 и позже.
-
ReplaceAllInSelection
NSTextFinderActionReplaceAllInSelection
Замены все случаи строки в текущем выборе.
Доступный в OS X v10.7 и позже.
-
SelectAll
NSTextFinderActionSelectAll
Выбирает все строки поиска соответствия.
Доступный в OS X v10.7 и позже.
-
SelectAllInSelection
NSTextFinderActionSelectAllInSelection
Выбирает все строки поиска соответствия в текущем выборе.
Доступный в OS X v10.7 и позже.
-
HideFindInterface
NSTextFinderActionHideFindInterface
Скрывает интерфейс панели находки.
Доступный в OS X v10.7 и позже.
-
ShowReplaceInterface
NSTextFinderActionShowReplaceInterface
Выводит на экран интерфейс панели находки включая функциональность замены.
Доступный в OS X v10.7 и позже.
-
HideReplaceInterface
NSTextFinderActionHideReplaceInterface
Выводит на экран интерфейс панели находки включая функциональность замены.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
-
Следующие константы указывают, что тип поиска привязывает действие, должен выполнить.
Объявление
Swift
enum NSTextFinderMatchingType : Int { case Contains case StartsWith case FullWord case EndsWith }
Objective C
enum { NSTextFinderMatchingTypeContains = 0, NSTextFinderMatchingTypeStartsWith = 1, NSTextFinderMatchingTypeFullWord = 2, NSTextFinderMatchingTypeEndsWith = 3 }; typedef NSInteger NSTextFinderMatchingType;
Константы
-
Contains
NSTextFinderMatchingTypeContains
Соответствие содержит строку.
Доступный в OS X v10.7 и позже.
-
StartsWith
NSTextFinderMatchingTypeStartsWith
Соответствие начинается со строки.
Доступный в OS X v10.7 и позже.
-
FullWord
NSTextFinderMatchingTypeFullWord
Соответствие точно соответствует строку.
Доступный в OS X v10.7 и позже.
-
EndsWith
NSTextFinderMatchingTypeEndsWith
Матч заканчивается со строкой.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
-
Следующие ключи используются для передачи
NSTextFinder
параметры поиска через область монтажа. ИспользуйтеNSPasteboardTypeTextFinderOptions
ввестиОбъявление
Objective C
NSString *const NSTextFinderCaseInsensitiveKey; NSString *const NSTextFinderMatchingTypeKey;
Константы
-
NSTextFinderCaseInsensitiveKey
NSTextFinderCaseInsensitiveKey
Значение этого ключа должно быть булевской переменной
NSValue
объект, указывающий, должен ли поиск быть чувствительным к регистру.Доступный в OS X v10.7 и позже.
-
NSTextFinderMatchingTypeKey
NSTextFinderMatchingTypeKey
Значение этого ключа должно быть
NSNumber
содержаNSTextFinderMatchingType
значение, указывающее тип поиска, соответствующего для выполнения..Доступный в OS X v10.7 и позже.
-