Данные здесь примеры предназначены для AppleScriptObjC (Cocoa frameworks using AppleScript - XCode). В обычном AppleScript это не работает.
Итак. Как идентифицировать определенный объект в том случае, когда в одном View создано несколько однотипных объектов? Например есть форма, в ней два текстовых поля и они оба делегата. Как определить, внутри какого поля печатают?
Есть несколько вариантов, например:
- Использовать tag.
- Сравнить объекты.
Вариант первый: по tag
-- set aTag to tag of aComboBox as integer
on comboBox_completedString_(aComboBox, partialString)
set aTag to tag of aComboBox as integer
log "aTag: " & aTag
return ""
end comboBox_completedString_
Вариант второй: сравнить объекты
on comboBox_completedString_(aComboBox, partialString)
-- Варианты примеров идентификации объектов.
-- https_://www.macscripter.net/viewtopic.php?pid=174541
--if aComboBox's object() is myComboFiles then -- ошибка
--if aComboBox's object()'s isEqual:myComboFiles then -- ошибка
--if aComboBox = myComboFiles then -- ошибка
if aComboBox is myComboFiles() then
log "is comboFiles 1"
end if
if aComboBox is myComboFiles2() then
log "is comboFiles 2"
end if
return ""
end comboBox_completedString_
или в другом методе
-- Не проверено, но смысл понятен.
on controlTextDidChange_(aNotification)
if aNotification's object() is myComboFiles() then
log "is myComboFiles"
end if
end controlTextDidChange_
Примечание: Если у вас есть только одно текстовое поле, вам не нужно выполнять проверку типа. Но в случае нескольких объектов, воспользуйтесь примерами выше.