2013-02-04 33 views
1

我有一個Cocoa應用程序,其中包含一個NSMutableArray,其中包含NSImageView子類的實例。使用valueForKeyPath獲取NSImageView子類數組的最小x和y原點

我想要做的是獲取ImageViews邊界原點的x值的最小值。

我曾嘗試:

double minx =[[robots valueForKeyPath:@"@min.bounds.origin.x"] doubleValue]; 

還有:

double minx =[[robots valueForKeyPath:@"@min.self.bounds.origin.x"] doubleValue]; 

不過,我得到以下錯誤:

[<NSConcreteValue 0x100597a20> valueForUndefinedKey:]: this class is not key value coding-compliant for the key origin. 

我已經在網上搜索和的NSKeyValueCoding協議參考,但我沒有找到解決我的問題的方法。我知道我可以循環遍歷NSMutableArray,但使用valueForKeyPath將是我猜測的更好的方式。

+0

我明白錯誤;因爲'NSRect'是一個簡單的'struct'而不是Objective-C對象。 – trojanfoe

+1

....那麼如何子類化NSImageView'並將這些值作爲屬性公開? – trojanfoe

+0

反正NSImageView已經被子類化了。謝謝,解決了這個問題。如果你把它作爲答案發布,我會選擇它 –

回答

3

錯誤是因爲NSRect(從[NSImageView bounds]返回的值)是一個簡單的struct而不是Objective-C對象。

我會推薦子類NSImageView並將這些值作爲屬性公開,以便它們是關鍵值編碼兼容。

相關問題