2011-07-13 20 views
17

Trong XCode4, tôi thấy rằng tôi không thể hoàn tất mã để thu hẹp cho tên phương thức nhiều thông số trong đó phần đầu tiên là phổ biến. Ví dụ: hãy xem xét các phương pháp sau đây từ UITableViewDelegate:Hoàn thành mã cho tên phương thức nhiều tham số trong XCode4

- tableView:viewForHeaderInSection: 
- tableView:heightForHeaderInSection: 
- tableView:accessoryTypeForRowWithIndexPath: 
... 

Danh sách này tiếp tục; có một vài phương pháp bắt đầu tableView. Nếu tôi nhập "tableView", danh sách dài và không được điều hướng nhanh chóng. Nếu tôi gõ "tableView:", hoàn thành mã được thoát ngay khi tôi nhập dấu hai chấm (:). Nếu tôi gõ một run-on như "tableViewview", hoàn thành cũng thoát, có lẽ là nó không còn theo nghĩa đen phù hợp với phần tên phương thức đầu tiên.

Có cách nào để hoàn thành thông qua bàn phím trên danh sách như vậy mà không cần phải di chuyển xung quanh hoặc tạo ra một số lượng truy cập phím mũi tên ngẫu nhiên để điều hướng danh sách dài không? Tôi đang có một thời gian khó tin rằng việc hoàn thành mã cho các phương pháp Objective-C đa tham số rất hạn chế, nhưng không phải thử nghiệm hay tài liệu nào cũng đã được chứng minh là chiếu sáng cho đến nay.

Cập nhật để làm rõ: Phía trên Tôi đang đề cập đến việc hoàn thành khai báo phương thức (ví dụ: trong tệp .m), không phải của cuộc gọi phương thức. Đối với các cuộc gọi phương thức, XCode 4.x hoàn thành cho từng phần tham số phương thức một cách độc lập; điều này hoạt động tuyệt vời. Vấn đề ở trên chỉ áp dụng cho các khai báo, thường là khi bắt đầu viết một phương thức thực hiện mới trong một tệp .m.

+0

Tôi đang đối mặt với cùng một vấn đề! – Vasu

Trả lời

6

Dường như hành vi bạn mong đợi là (không may) không được triển khai trong Xcode. Tuy nhiên, tôi đã tìm thấy một giải pháp phần: Mã hoàn thành hoạt động khi bạn xác định một phần hoàn chỉnh đầu tiên của phương pháp đa thông số, tức là nếu bạn gõ này (với không gian ở cuối)

- tableView:(UITableView *)tableView 

và nhấn ESCAPE chủ chốt sau đó hộp thoại hoàn thành mã sẽ xuất hiện và bạn sẽ có thể tiếp tục nhập phần còn lại của tên phương thức.

Bạn có thể tự hỏi:

"Ồ cậu bé, tôi thực sự phải gõ trong phần giới thiệu dài này chỉ để có được hoàn thành mã của tôi?"

Đoạn mã để giải cứu! Bạn chỉ cần nhập lời mở đầu một lần và convert it into snippet. Tôi thấy tốt nhất là định cấu hình theo cách sau, đừng quên thêm khoảng trống vào cuối phần mã, nó sẽ làm mọi thứ dễ dàng hơn.

Ima

Bạn nên sử dụng thứ bạn vừa tạo ra như thế nào? Trong tệp .m của bạn, hãy bắt đầu nhập tabl và Xcode sẽ cho phép bạn tự động điền đoạn mã cho bạn. Khi tiền tố được đặt nhấn ESC để hiển thị danh sách tự động hoàn thành.

Giải pháp này không phải là rất mạnh mẽ, vì bạn phải tạo đoạn mã cho mọi phương thức đa phần mà bạn muốn sử dụng, nhưng nó tiết kiệm thời gian và không có nhiều tên phương thức đa phần dùng chung cùng một tiền tố.

2

Rất tiếc, nó không hoạt động theo cách tôi đã đề cập với các giao thức sơ khai như bạn muốn trong bản cập nhật của mình. Tôi sử dụng Trình phụ trợ cho điều đó, một ứng dụng trong cửa hàng ứng dụng mac thực hiện đầy đủ việc khai báo các phương thức đại biểu/giao thức mà bạn muốn triển khai. Hy vọng rằng sẽ giúp một chút.

Cũ bài:

tôi sử dụng Tab cho việc này. Ví dụ tôi thường có: Bạn muốn một trong nhiều phương pháp init trong quá trình hoàn tất mã.

Sau đó, bạn không muốn cuộn xuống hoặc sử dụng nhiều lần nhấn phím để đến đúng phương pháp.

Nhấn i> nhấn Tab >init hoàn tất.

Hit thoát và sau đó w và sau đó một lần nữa Tab cho tất cả initWith phương pháp này.

Bạn thậm chí có thể sử dụng Tab ⇥/Thoát sau khi thông số đầu tiên, khi có nhiều hơn phương pháp này chỉ với một tham số.

Trong trường hợp bạn nhấn t> Tab > Thoát >một và Return , có bạn có phương pháp thứ ba của bạn. Bạn cũng có thể chuyển đến đối số hoàn thành mã trước đó bằng Shift + Tab .

4

Tôi bực mình vì vấn đề này trong một thời gian khá dài. Bây giờ tôi có thể xác minh rằng không có cách nào để thực hiện ngay cả trong Xcode 5 mới nhất, tôi đã gửi báo cáo lỗi:
Multi-parameter method declaration completion in Xcode

Vui lòng đánh lừa nếu bạn muốn.

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