アプリの開発中に、誰かが私にバグレポートを提出しました - 「長いテキストをテキストフィールドに貼り付けられません」. 案の定、「貼り付け」バブルがタップから青色のままでハングし、何も起こりません。少し試してみたところ、約 60,000 文字のファイルですべてが機能することがわかりました (心配するほど長い時間はかかりませんでした)。
さらに実験したところ、「メモ」アプリだけでなく、いくつかのサードパーティアプリも同じ動作をすることがわかりました。
これが UITextView (iOS6) の実際の問題である場合、巨大なテキストを貼り付けることができるように修正できるとは思いませんが、可能であればハングを回避したいと考えています。UITextView がハングする前にテキストをキャッチする方法を提案できますか?
編集: rmaddy のおかげで、これを機能させるために使用したものは次のとおりです。
#import <MobileCoreServices/UTCoreTypes.h>
#define kUITextViewMaximumPaste (65000)
...
- (void)paste:(id)sender {
UIPasteboard *pb = [UIPasteboard generalPasteboard];
NSString *type = (NSString *)kUTTypeText;
if ([pb containsPasteboardTypes:@[type]]) {
NSString *txt = [pb valueForPasteboardType:type];
if([txt length] > kUITextViewMaximumPaste) {
[pb setValue:[txt substringToIndex:kUITextViewMaximumPaste] forPasteboardType:type];
}
}
[super paste:sender];
}