2011-12-08 43 views
7

Tôi có tính năng trò chuyện trong ứng dụng của mình và tôi đang cố gắng ẩn bàn phím bằng cách kéo ngón tay xuống giống như cách bạn có thể ẩn bàn phím trong ứng dụng sms trong iOS 5 .ẩn bàn phím bằng cách kéo ngón tay như ứng dụng sms trong iOS 5

tôi đã subclassed UITableView, tuy nhiên càng sớm càng bắt đầu di chuyển tôi không còn nhận được các cuộc gọi đến

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 

tôi đang tự hỏi làm thế nào tôi có thể nhận được di chuyển và tìm ra nơi các ngón tay là trong di chuyển để nếu nó bắt đầu đến gần bàn phím tôi có thể bắt đầu ẩn nó.

Tôi nghĩ đây là một tính năng mà nhiều người sẽ muốn, bất kỳ ý tưởng nào về cách tạo ra nó?

+0

AFAIK nếu xem bảng không tiếp nhận các cử chỉ kéo, sau đó tất cả các sự kiện liên lạc tiếp theo được gửi tới xem di chuyển để thay thế. Vì vậy, bạn cần phải thực hiện điều này trong một lớp con của 'UIScrollView', hoặc có lẽ trong một đại biểu của nó. –

+0

Tôi đã nghĩ về điều đó, nhưng không chắc chắn làm thế nào để thay thế trình xem cuộn của tableview bằng phiên bản của tôi – odyth

+0

Xin lỗi, bạn có thể bỏ qua nhận xét trước của tôi. Tôi không biết 'UITableView' là lớp con của' UIScrollView'. Tôi chưa từng thấy thiết lập chế độ xem cuộn như trước đây. –

Trả lời

7

DAKeyboardControl nó một MIT giấy phép mã nguồn cho những gì bạn đang tìm kiếm.

+0

@odyth, đây là câu trả lời bạn cần. tôi chỉ muốn tự làm điều này, và DAKeyboardControl rất dễ sử dụng. một dòng mã (+ #import), và nó hoạt động như một nét duyên dáng. –

+0

Đây là thư viện rất cũ và vô dụng ngay bây giờ! – AsifHabib

2

UITableView thừa hưởng từ UIScrollView, vì vậy bạn có thể phát hiện các vị trí cuộn với các phương pháp UIScrollViewDelegate như - (void)scrollViewDidScroll:(UIScrollView *)scrollView

+0

Làm thế nào để bạn có được vị trí của ngón tay của người dùng? – odyth

+0

Tạo lớp con của riêng bạn của UITableView, thực hiện phương thức 'touchesShouldBegin: withEvent: inContentView:' của UIScrollView để phát hiện điểm tiếp xúc, sau đó theo dõi chuyển động trong 'scrollViewDidScroll:' để ẩn bàn phím hay không. – changx

3

tôi đã kích hoạt tính năng này trong ứng dụng của tôi, với sự giúp đỡ của Daniel's DAKeyboardControl library. Bạn có thể thực hiện các phong cách iMessage bàn phím ẩn axit chỉ với một dòng tuyên bố:

[self.view addKeyboardPanningWithActionHandler:^(CGRect keyboardFrameInView) { 
    // Move interface objects accordingly 
    // Animation block is handled for you 
}]; 
2

May mắn thay trong iOS 7 Apple đã thêm thuộc tính tiện dụng keyboardDismissMode vào UIScrollView. Giờ đây, ứng dụng của bạn có thể hoạt động giống như Tin nhắn bằng cách thay đổi một thuộc tính duy nhất trên Bảng phân cảnh của bạn hoặc bằng cách thêm một dòng mã.

Thuộc tính này sử dụng mới ScrollViewKeyboardDismissMode enum. Các giá trị có thể cho enum như sau.

UIScrollViewKeyboardDismissModeNone 
UIScrollViewKeyboardDismissModeOnDrag 
UIScrollViewKeyboardDismissModeInteractive 

Dưới đây là tài sản storyboard làm bỏ qua bàn phím trên cuộn

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