2011-02-06 35 views

Trả lời

16

NSSearchField hỗ trợ cơ chế nhắm mục tiêu hành động, vì vậy chỉ cần móc nó vào mục tiêu/hành động. Ví dụ, giả sử bạn đã hành động sau tuyên bố trong đại biểu ứng dụng của bạn:

- (IBAction)searchAnswer:(id)sender; 

Trong Interface Builder, ctrl-kéo trường tìm kiếm của bạn vào đối tượng delegate ứng dụng và chọn hành động searchAnswer:. Trong quá trình triển khai, hãy sử dụng -stringValue để lấy văn bản được người dùng nhập vào trường tìm kiếm, ví dụ:

- (IBAction)searchAnswer:(id)sender { 
    NSLog(@"search answer: %@", [searchField stringValue]); 
} 

Lưu ý rằng theo mặc định, trường tìm kiếm sẽ gửi hành động khi người dùng tạm dừng/dừng nhập. Nếu bạn muốn nó gửi hành động chỉ khi người dùng gõ Enter, hãy chọn hộp kiểm Sends Whole Search String trong trường tìm kiếm thuộc tính cửa sổ thanh tra.

+0

Cảm ơn! Một số điều quá đơn giản để hiểu, tôi đoán ... – Flafla2

+3

@ Flafla2: Mục tiêu/hành động ở cấp độ cao hơn các sự kiện chính hoặc chuột. Một trường có thể gửi hành động của nó ngay cả khi người dùng không có phím Enter hoặc không có bàn phím nào cả. Một nút có thể gửi hành động của nó ngay cả khi người dùng không có chuột. Sử dụng mục tiêu/hành động có nghĩa là bạn có thể nhận được hành động bất kể thiết bị giao diện người dùng có hoặc không có. –

Các vấn đề liên quan