2010-10-15 85 views
4

我想在我的UITextView的UIViewController中處理粘貼事件,這樣如果粘貼的數據是文本或HTML,它應該像平常一樣粘貼數據,因爲它已經做到了,但如果它是其他類似圖像或PDF或其他任何東西,我想以另一種方式在本地存儲數據,而不是粘貼到UITextView(因爲它不能這樣做)。在UIViewController中處理粘貼事件

我該如何解決這個問題?在我能從Apple找到的唯一例子中,他們知道他們粘貼的數據的類型。甚至讓我的控制器中的「 - (void)paste:(id)sender」方法在我的UITextView中發生粘貼事件時被調用,以此逃脫我。

謝謝

回答

1

您可以使用該方法canReadObjectForClasses:options:測試的東西,而無需實際檢索值。

例如,在測試字符串:

NSArray *classes = [NSArray arrayWithObject:[NSString class]]; 
NSDictionary *options = [NSDictionary dictionary]; 

if ([[NSPasteboard generalPasteboard] canReadObjectForClasses:classes options:options]) { 
    NSLog(@"yup, there is a string in here"); 
} 

更新:

你檢查在粘貼板中的所有對象這種方式,只需添加您所期望的陣列上的任何類。

NSArray *classes = [NSArray arrayWithObjects:[NSURL class], [NSString class], nil]; 

使用UIResponderStandardEditActions協議實現粘貼方法。

+0

檢查紙板上的所有UTI會不會更好?如何捕獲粘貼方法調用? – Neigaard 2010-10-15 11:58:26

+0

我剛剛更新了答案:) – pablasso 2010-10-15 12:14:04