如何確定文本格式的UIResponderStandardEditActions的當前狀態?例如,如果我執行以下操作:UITextView UIResponderStandardEditActions文本格式切換狀態
[textView toggleBoldface:nil];
如何查詢textView以查明粗體的狀態是否已打開或關閉?這僅僅是一個沒有選擇的遊標(即範圍長度爲0)。因此,enumerateAttribute似乎不起作用。
謝謝。
如何確定文本格式的UIResponderStandardEditActions的當前狀態?例如,如果我執行以下操作:UITextView UIResponderStandardEditActions文本格式切換狀態
[textView toggleBoldface:nil];
如何查詢textView以查明粗體的狀態是否已打開或關閉?這僅僅是一個沒有選擇的遊標(即範圍長度爲0)。因此,enumerateAttribute似乎不起作用。
謝謝。
即使選擇長度爲0,出現typingAttributes屬性(在iOS 6中可用)將記錄將應用於用戶鍵入的新文本的屬性,從而揭示格式化選項的狀態,如粗體將會。
NSLog(@"textViewFormatting options: %@", [[self noteTextView] typingAttributes]);
我沒有在文檔中找到任何有用的東西,但我想它會很簡單,只是繼承UITextView,在其上添加一個屬性,如BOOL boldText
,然後在任何地方調用[textView toggleBoldFace:nil];
也只是切換該屬性。然後,當你需要檢查textView的狀態時,只需檢查boldText
屬性。
嗨傑拉德。我很欣賞這個建議,但我認爲這不會因爲幾個原因而起作用。主要的是,雖然粗體是BOOL,但您希望看到的狀態可以在沒有切換事件的情況下更改(即移動光標)。例如,我可能會有3個粗體字。將光標置於任何單詞的字母之間應該返回一個大膽的狀態。如果我把光標放在不是粗體的第4個單詞中,它不應該返回粗體狀態。所以在這裏,沒有切換事件來改變狀態。只要將光標放置在不同的地方應該會返回不同的結果。希望這是有道理的。 – DenVog
我沒有意識到你會改變狀態通過任何東西,但切換。如果我想到一些有用的東西,我會回到這裏。 – geraldWilliam