Index: chrome/browser/ui/cocoa/autofill/autofill_section_container.mm |
diff --git a/chrome/browser/ui/cocoa/autofill/autofill_section_container.mm b/chrome/browser/ui/cocoa/autofill/autofill_section_container.mm |
index 2da1f4cb3e95999e50ba10d09710ff7787397d14..36de4843798b58bbbe1a140e5690449c4906f209 100644 |
--- a/chrome/browser/ui/cocoa/autofill/autofill_section_container.mm |
+++ b/chrome/browser/ui/cocoa/autofill/autofill_section_container.mm |
@@ -7,6 +7,7 @@ |
#include "base/strings/sys_string_conversions.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/ui/autofill/autofill_dialog_controller.h" |
+#import "chrome/browser/ui/cocoa/autofill/autofill_pop_up_button.h" |
#import "chrome/browser/ui/cocoa/autofill/autofill_section_view.h" |
#import "chrome/browser/ui/cocoa/autofill/autofill_suggestion_container.h" |
#import "chrome/browser/ui/cocoa/autofill/autofill_textfield.h" |
@@ -91,12 +92,11 @@ void BreakSuggestionText(const string16& text, |
} |
- (void)getInputs:(autofill::DetailOutputMap*)output { |
- for (id input in [inputs_ subviews]) { |
+ for (NSControl<AutofillInputField>* input in [inputs_ subviews]) { |
const autofill::DetailInput* detailInput = |
reinterpret_cast<autofill::DetailInput*>([input tag]); |
DCHECK(detailInput); |
- NSString* value = [input isKindOfClass:[NSPopUpButton class]] ? |
- [input titleOfSelectedItem] : [input stringValue]; |
+ NSString* value = [input fieldValue]; |
output->insert( |
std::make_pair(detailInput,base::SysNSStringToUTF16(value))); |
} |
@@ -273,17 +273,15 @@ void BreakSuggestionText(const string16& text, |
ui::ComboboxModel* input_model = |
controller_->ComboboxModelForAutofillType(input.type); |
+ base::scoped_nsprotocol<NSControl<AutofillInputField>*> control; |
if (input_model) { |
- base::scoped_nsobject<NSPopUpButton> popup( |
- [[NSPopUpButton alloc] initWithFrame:NSZeroRect pullsDown:YES]); |
+ base::scoped_nsobject<AutofillPopUpButton> popup( |
+ [[AutofillPopUpButton alloc] initWithFrame:NSZeroRect pullsDown:NO]); |
for (int i = 0; i < input_model->GetItemCount(); ++i) { |
[popup addItemWithTitle: |
base::SysUTF16ToNSString(input_model->GetItemAt(i))]; |
} |
- [popup selectItemWithTitle:base::SysUTF16ToNSString(input.initial_value)]; |
- [popup sizeToFit]; |
- [popup setTag:reinterpret_cast<NSInteger>(&input)]; |
- layout->AddView(popup); |
+ control.reset(popup.release()); |
} else { |
base::scoped_nsobject<AutofillTextField> field( |
[[AutofillTextField alloc] init]); |
@@ -292,11 +290,13 @@ void BreakSuggestionText(const string16& text, |
[[field cell] setIcon: |
controller_->IconForField( |
input.type, input.initial_value).AsNSImage()]; |
- [[field cell] setInvalid:YES]; |
- [field sizeToFit]; |
- [field setTag:reinterpret_cast<NSInteger>(&input)]; |
- layout->AddView(field); |
+ control.reset(field.release()); |
} |
+ [control setFieldValue:base::SysUTF16ToNSString(input.initial_value)]; |
+ [control setInvalid:YES]; |
+ [control sizeToFit]; |
+ [control setTag:reinterpret_cast<NSInteger>(&input)]; |
+ layout->AddView(control); |
} |
return view.autorelease(); |