Tôi có một NSTextField ràng buộc với mô hình của tôi. Nếu tôi thay đổi nội dung của trường văn bản theo lập trình, mô hình không được cập nhật. Tôi biết rằng bạn được cho là update the model instead.Với Cocoa Bindings, thay đổi giá trị của NSTextField theo lập trình không cập nhật mô hình
Nhưng tôi đang cố gắng triển khai lớp con NSTextField nhận ra cuộn khi chuột di chuột qua nó để thay đổi giá trị bằng số. Rõ ràng là tôi không có quyền truy cập vào mô hình từ lớp con này. Vì vậy, bạn có bất cứ đề nghị làm thế nào tôi có thể làm điều này?
SOLUTION (nhờ noa):
- (void)scrollWheel:(NSEvent *)theEvent {
[self setFloatValue:[self floatValue] - [theEvent deltaY]];
NSDictionary *bindingInfo = [self infoForBinding: NSValueBinding];
NSObject *boundObject = [bindingInfo valueForKey:NSObservedObjectKey];
NSString *keyPath = [bindingInfo valueForKey:NSObservedKeyPathKey];
[boundObject setValue:[NSNumber numberWithFloat:[self floatValue]]
forKeyPath:keyPath];
}
Như tôi đã nói, tôi đang sử dụng các ràng buộc. Giá trị của trường văn bản của tôi bị ràng buộc với thuộc tính tuân thủ KVO của đối tượng mô hình của tôi. Vấn đề của tôi là, ràng buộc chỉ cập nhật thuộc tính của đối tượng mô hình khi tôi thay đổi giá trị của trường văn bản bằng tay, nhưng không phải khi nó thay đổi theo chương trình. – DrummerB
Lỗi của tôi, tôi nghĩ các cập nhật có lập trình cho các điều khiển bị ràng buộc đã cập nhật mô hình. Tôi sẽ tìm một số mã để đăng. – paulmelnikow
Thật không may đó không phải là trường hợp. Cảm ơn bạn đã cố gắng để giúp đỡ! – DrummerB