

添付画像AからBの状態へ，プログラム制御でもっていくにはどうしたらよいでしょうか。  
言い換えると，UITextViewにおいて(画像ではHTMLのフォームですが…)，markedTextRange内にある未確定な入力中の文字列を消し，且つ，キーボードの予測変換もクリアしたいのですが，なかなか情報が見つかりませんでした。  
TextViewへのフォーカスは外れず，カーソル位置もそのままで入力を続けることができると有難いです。

画像には載せていませんが，自身で実装したサジェストリストが画面に表示され，そのセルがタップされたとき，本来のOS付属のキーボードの変換候補一覧はすでに不要なのでクリアしたいのです。  
わかりづらい説明で申し訳有りませんが，APIなどをご存知の方は教えていただけると助かります。  
[![画像の説明をここに入力](https://i.stack.imgur.com/RHyAp.png)](https://i.stack.imgur.com/RHyAp.png)


CC BY-SA 3.0
2016-02-24T16:29:55.370
22491
2016-10-29T03:07:01.597
question
ios objective-c
iOS Objective-Cにおいて，UITextViewに入力しているテキストの変換作業をキャンセルさせたい。


まず、File's ownerの @interface 部に

[code]

    @interface クラス名 <UITextFieldDelegate> {
        IBOUtlet UITextField *wantsToCancelable;
    }
    
[/code]

等として、編集をキャンセルしたいテキストフィールドのアウトレットを作成し、アウトレットを接続して内容にアクセス出来るようにします。  
後は、@implementationに、

[code]

    - (void) awakeFromNib
    
[/code]

内で

[code]

    [wantsToCancelable setDelegate:self];
    
[/code]

とするか、UITextFileldのDelegateプロパティ（左クリックで出てくる黒い窓）のDelegateをFile's Ownerにします。

最後に

[code]

    - (void) textFieldDidBeginEditing:(UITextField *)textField
    - (void) textFieldDidEndEditing:(UITextField *)textField
    
[/code]

を実装して、その内部で編集中の文字列をチェックすれば良いと思います。  
内容の取り出しと設定（キャンセル）は

[code]

    [wantsToCancelable stringValue];
    [wantsToCancelable setStringValue:newString];
    
[/code]

で、行います。空白に戻すにはnewStringに@""を渡して下さい。


CC BY-SA 3.0
2016-03-12T07:04:28.757
23047
2016-03-12T07:04:28.757
14745
22491
answer