2012-09-01 14 views
6

Ai đó có thể giải thích cho tôi tại sao textDidChange không xử lý ủy nhiệm của tôi nhưng controlTextDidChange hoạt động từ NSTextField.textDidChange vs controlTextDidChange

- (void)controlTextDidChange:(NSNotification *)aNotification{ 
    NSBeep(); 
} 

từ

- (void)textDidChange:(NSNotification *)aNotification{ 
    NSBeep(); 
} 

Trả lời

5

controlTextDidChange: là phương thức ủy quyền chính xác được xác định trên NSTextField (được kế thừa từ NSControl).

textDidChange: là phương thức mà khi được gọi là NSTextField, làm cho nó hoạt động như thể văn bản của nó đã thay đổi (bao gồm cả gọi phương thức trên). Nó không phải là một phương thức đại biểu để bạn thực hiện.

Có một chút không nhất quán của Apple khi họ có phương thức ủy quyền textDidChange: trên UISearchBarDelegate.

0

textDidChange: Informs the delegate that the text object has changed its characters or formatting attributes.

Tôi đoán đó có nghĩa là phông chữ của nó (thuộc tính văn bản) thay đổi, và không phải là văn bản đầu vào.