2010-02-28 30 views
5

Khi tôi phát triển cho iPhone, tôi đã có nhiều sự kiện liên lạc có thể đúng với một nút. (ví dụ: Chỉnh sửa đã thay đổi, chỉnh sửa đã kết thúc…)Không có sự kiện nào như 'Chỉnh sửa đã thay đổi' cho một NSTextField?

Bây giờ tôi phát triển cho Mac OSX Tôi muốn ứng dụng của tôi nhận ra nhiều sự kiện trong NSTextField.

Làm cách nào để thực hiện điều đó? Có sự thay thế nào cho các sự kiện không?

Cảm ơn!

CHỈNH SỬA: Các đại biểu có thể là chìa khóa?

Trả lời

24

Bạn cần đặt đối tượng làm đại biểu của NSTextField. Vì NSTextField là một lớp con của NSControl, nó sẽ gọi phương thức -controlTextDidChange: trên đối tượng của bạn nếu bạn triển khai nó.

@interface MyObject : NSObject 
{ 
    IBOutlet NSTextField* textField; 
} 
@end 

@implementation MyObject 
- (void)awakeFromNib 
{ 
    [textField setDelegate:self]; 
} 

- (void)controlTextDidChange:(NSNotification *)notification 
{ 
    if([notification object] == textField) 
    { 
     NSLog(@"The contents of the text field changed"); 
    } 
} 
@end 
Các vấn đề liên quan