Данные здесь примеры предназначены для 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_
Примечание: Если у вас есть только одно текстовое поле, вам не нужно выполнять проверку типа. Но в случае нескольких объектов, воспользуйтесь примерами выше.