【问题标题】:Compare WKInterfaceLabel Text to Another NSString将 WKInterfaceLabel 文本与另一个 NSString 进行比较
【发布时间】:2015-04-17 15:32:55
【问题描述】:

我知道 WKInterfaceLabel 没有 getter 方法,但是我有其他方法可以将标签文本与另一个字符串进行比较吗?如果这不是手表应用,而我使用的是 UILabel,我可以这样做:

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

    }

【问题讨论】:

    标签: objective-c watchkit apple-watch wkinterfacelabel


    【解决方案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";
       ...
    }
    

    另外,这也是您使用可访问性的方式,因此它是合法。可能还有其他方法可以完成,但这似乎是做你想做的最快和最安全的方法。

    【讨论】:

    • 我正在编写自己的答案,建议使用 NSString 属性来保留存储在 WKInterfaceLabel 中的文本副本。但我更喜欢这个答案。
    • 这在 Swift 4 中不起作用,因为现在没有 accessibilityValue 属性。就像文本一样,只有 setAccessibilityValue,没有 getter!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2019-03-14
    • 2022-12-05
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2012-10-04
    相关资源
    最近更新 更多