2010-03-29 33 views
5

Hey Guys kiểm tra mã này (My Tuỳ chỉnh Keyboard):Tuỳ chỉnh bàn phím iphone, có vấn đề với nút xóa lùi trong UITextView

-(IBAction) updateTextBackSpace:(id)sender 
{ 
    if([txtview.text length]>0) 
    { 
     NSString *deletedLastCharString = [txtview.text substringToIndex:([txtview.text length]-1)]; 
     [txtview setText:deletedLastCharString]; 
    } 
    else 
    { 
     return nil; 
    } 
} 

Cái này là tôi không thể tìm ra cách để thay đổi mã này do đó, tôi có thể xóa bất kỳ văn bản trong bất kỳ dòng cung cấp cho ít con trỏ, các phím lùi bắt đầu xóa từ cuối dòng .Tôi sẽ có thể xóa (backspace) từ vị trí con trỏ Xin vui lòng giúp

+0

Bạn có bàn phím tùy chỉnh không? Xử lý tất cả các sự kiện theo cách thủ công? – Manjunath

+0

Có, tôi đang cố gắng làm điều đó. –

+0

bạn đã khắc phục được sự cố chưa? bởi vì tôi vẫn còn một số lỗi !!! như bạn và không hoạt động. :( – Momi

Trả lời

3

thay thế này

NSString *deletedLastCharString = [txtview.text substringToIndex:([txtview.text length]-1)]; 

với

NSRange range = [txtview selectedRange]; 
NSString *deletedLastCharString = [txtview.text substringToIndex:([range.location]-1)]; 
+0

Mã có vẻ tốt .. Nhưng tôi gặp phải lỗi: Mã thông báo ':' trước ']' Xin lỗi vì noobness –

+0

Hey Tôi đã chỉnh sửa nó thành (range.location) thay vì [range.location]. Nó hoạt động nhưng nó đang xóa văn bản 'sau' con trỏ cũng Nếu tôi muốn chỉnh sửa ABCD EFG và tôi đặt con trỏ tại D và nhấn backspace nó sẽ ăn EFG còn lại để đầu ra là: ABC nơi tôi muốn : ABC EFG Cảm ơn Mihir –

+0

thử sử dụng [txtview.text substringToIndex: ([txtview.text length] - [range.location] -1)]; Nó sẽ hoạt động ... –

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