Сравнить текст WKInterfaceLabel с другой строкой NSString

Я знаю, что для WKInterfaceLabel нет метода получения, но есть ли другой способ сравнить текст метки с другой строкой? Если это не было приложение для часов, и я использовал UILabel, я мог бы просто сделать это:

if ([self.label.text isEqualToString:someString]) {

    }

1 ответ

Решение

Как вы сказали, нет поддерживаемого способа получения текста, однако вы можете использовать элементы доступности в качестве "опции".

Вот идея:

Когда установлен текст self.label (либо в коде, либо в раскадровке), также установите соответствующую метку / значение специальных возможностей. Когда вам нужно прочитать / обновить текст метки, просто убедитесь, что вы используете вместо этого значения специальных возможностей.

self.label.text = @"foo";
self.label.accessibilityValue = @"foo";

if ([self.label.accessibilityValue isEqualToString:someString]) {
   self.label.text = @"bar";
   self.label.accessibilityValue = @"bar";
   ...
}

Плюс это то, как вы будете использовать доступность в любом случае, так что это законно. Для этого могут быть и другие способы, но это, кажется, самый быстрый и безопасный способ сделать то, что вы хотите.

Другие вопросы по тегам